1. 程式人生 > 其它 >基於docker安裝nacos並且配置mysql

基於docker安裝nacos並且配置mysql

目錄

軟硬體

作業系統

基於window10下的WSL2(Ubuntu 18.04 LTS)
如何配置,請參考這篇教程(傳送門) : WSL2上的Docker遠端容器入門

軟體安裝包

nacos2.0.3,mysql5.7.29

安裝nacos

配置好wsl2與docker的環境後,使用docker命令下載

docker pull nacos/nacos-server

拉取映象完成後,執行下面的命令

mkdir -p /data/docker/logs/nacos                     #新建logs目錄
mkdir -p /data/docker/nacos/init.d
mkdir -p /data/docker/nacos/data

執行完成這一步就基本上吧nacos的安裝完成,接下來我們安裝mysql

安裝mysql

docker pull mysql:5.7.29

拉取完畢後,執行mysql容器

docker run --name mysql -d -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

nacos配置mysql

開啟並寫入配置檔案

vi  /data/docker/nacos/init.d/custom.properties        #預設配置檔案

#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200metrics for prometheusmanagement.endpoints.web.exposure.include=*metrics for elastic search#management.metrics.export.elastic.enabled=false

啟動nacos命令

docker  run \
--name nacos -d \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--privileged=true \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.235.1 \
-e MYSQL_SERVICE_DB_NAME=nacos_dec\
-e MYSQL_SERVICE_PORT=3306\
-e MYSQL_SERVICE_USER=root\
-e MYSQL_SERVICE_PASSWORD=root\
-v /data/docker/logs/nacos:/home/nacos/logs \
-v /data/docker/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \
-v /data/docker/nacos/data:/home/nacos/data \
nacos/nacos-server

驗證執行結果

輸入IP: http://127.0.0.1:8848

安裝中會遇到的問題以及參考解決辦法

nacos

1.修改資料庫地址後,nacos啟動錯誤

解決方案:我遇到這個問題是因為nacos時建立資料庫連線失敗報出的類似問題,最終發現是因為nacos docker容器ip與外部mysql伺服器ip網段相同,ip地址衝突導致的。 當然也有可能是mysql版本由原來的5.7換到了8.0版本的原因 https://jonhuster.blog.csdn.net/article/details/116530473

2.使用docker安裝Nacos,遠端連線nacos報錯,please check server x.x.x.x ,port 9848 is available

傳送門

主要是naocs2.0以後的版本需要放開埠9848就行

mysql

啟動mysql的問題解決方法(請參考):

[ERROR] [Entrypoint]: Database is uninitialized and password option is not specified You nee