刘曙尘

导航

Docker下部署 nacos(配合MySQL8.0部署)

系统:Centos7

Nacos:1.1.4

MySQL:8.0.16

步骤:

下载nacos镜像;
配置数据库,以及导入nacos-db.sql;
修改nacos源文件,以便支持mysql8.0+
把修改好的nacos-server.jar替换掉原先的;
修改docker里的nacos容器的配置文件application.properties
1、首先下载nacos镜像
docker pull nacos/nacos-server:1.1.4

(这边安装指定版本的nacos。如需要安装最新版,执行以下命令,默认下载最新版本)

docker pull nacos/nacos-server

2.配置数据库

要先在docker部署好MySQL8.0.16数据库,不会部署百度哈:

数据库脚本下载地址:
https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

进入运行mysql的docker容器:
docker exec -it mysql /bin/bash
使用mysql命令打开客户端:
mysql -uroot -p --default-character-set=utf8
创建nacos_config数据库:
create database nacos_config character set utf8
将上面下载好的数据库脚本nacos-db.sql文件拷贝到mysql容器的/目录下:(/mydata/nacos-db.sql是我存放该脚本的路径,请根据你实际修改)
docker cp /mydata/nacos-db.sql mysql:/
将sql文件导入到数据库:
use nacos_config;
source /nacos-db.sql;
创建一个nacos能访问并修改权限,使得nacos的ip能访问nacos_config数据库(没这步nacos可能链接不了数据库,会有如下报错):

创建用户:

create user 'root'@'172.17.0.3' identified by '123456';

授权:

grant all privileges on nacos_config.* to 'root'@'172.17.0.3' WITH GRANT OPTION;

刷新

flush privileges;
172.17.0.3 为docker里nacos的ip地址,根据你实际修改,可通过该命令查询ip: docker inspect nacos | grep IPAddress

root为你数据库用户名,123456为你数据库密码

注意:使用MySQL8.0+以上版本的,Nacos不支持(从官网上下载的Nacos默认支持mysql5.X),需要修改之后才可以使用,因为 Nacos 自带 mysql-connector-java 版本太低,升级一下版本就可以了。

Nacos 修改方法参考这两篇文章:

nacos配置中心连接mysql8.0

Nacos学习(二):Nacos1.1.4支持Mysql8.0

如果不想修改,从这里下载我修改编译好的 nacos (mysql-connector-java修改成了8.0.16版本),点这里下载

获得修改编译好后的nacos-server.jar(在nacos/target/文件夹下),传送到centos上。

  1. 先启动Nacos:

启动命令如下(具体参数要实际情况修改):

docker run -d
-e MODE=standalone
-e SPRING_DATASOURCE_PLATFORM=mysql
-e MYSQL_MASTER_SERVICE_HOST=172.17.0.3
-e MYSQL_MASTER_SERVICE_PORT=3306
-e MYSQL_MASTER_SERVICE_USER=root
-e MYSQL_MASTER_SERVICE_PASSWORD=123456
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
-p 8848:8848
--restart=always
nacos/nacos-server
配置项 说明
MYSQL_MASTER_SERVICE_HOST mysql 主节点 host。(Docker的容器也有ip的,不要直接写127.0.0.1之类的,先查询下docker里的mysql的ip多少,再填进去,ip查询命令:docker inspect mysql | grep IPAddress)
  更多配置参数信息看这里:https://nacos.io/zh-cn/docs/quick-start-docker.html

(以下步骤可不执行, 看自己需求)

如果要修改挂载目录,方法如下:

mkdir -p /home/nacos/logs/ #新建logs目录
mkdir -p /home/nacos/init.d/
vim /home/nacos/init.d/custom.properties #修改配置文件
 添加如下参数:

server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=pass

nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false

management.metrics.export.elastic.enabled=false

management.metrics.export.influx.enabled=false

server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i

nacos.security.ignore.urls=/,//*.css,//.js,/**/.html,//*.map,//.svg,/**/.png,//*.ico,/console-fe/public/,/v1/auth/login,/v1/console/health/,/v1/cs/,/v1/ns/,/v1/cmdb/,/actuator/,/v1/console/server/
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true
:wq 保存退出

3.启动命令修改如下

docker run -d
-e MODE=standalone
-e SPRING_DATASOURCE_PLATFORM=mysql
-e MYSQL_MASTER_SERVICE_HOST=172.17.0.3
-e MYSQL_MASTER_SERVICE_PORT=3306
-e MYSQL_MASTER_SERVICE_USER=root
-e MYSQL_MASTER_SERVICE_PASSWORD=123456
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
-p 8848:8848
--restart=always
-v /home/nacos/logs:/home/nacos/logs
-v /home/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
nacos/nacos-server

4.修改docker里的nacos的application.properties文件的参数:

进入nacos容器:

docker exec -it nacos bash

进入conf文件夹

cd conf

修改配置参数

vim application.properties
修改红色框的框选的参数即可,按实际情况修改:

注意:MYSQL_MASTER_SERVICE_HOST 为docker的mysql容器的ip,ip查询命令为:docker inspect mysql | grep IPAddress

db.url.0后参数加上useSSL=true&serverTimezone=GMT&

然后 :wq 保存退出;

5.先将docker里的nacos的原本 nacos-server.jar 删除(换成刚才修改编译支持mysql8.0的)

进入nacos容器:

docker exec -it nacos bash

查看该文件夹下的数据

ls

进入target文件夹

cd target

删除旧的nacos-server.jar

rm nacos-server.jar
然后输入exit退出,

把自己编译修改好nacos-server.jar放进上面的 /nacos/target/ 位置下:

6.复制命令如下:

docker cp /home/download/nacos-server.jar nacos:/home/nacos/target/
/home/download/nacos-server.jar为你实际存放nacos-server.jar路径,根据实际情况写

7.重启nacos
docker restart nacos

到这里基本部署完成啦,
输入   http://ip:8848/nacos/     可以访问啦。
默认账号:nacos
默认密码:nacos
如果访问不了,请开启防火墙:
firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --reload

posted on 2020-03-13 19:00  刘曙尘  阅读(3970)  评论(0编辑  收藏  举报