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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM