系統: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上。
- 先啟動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