前言
安裝之前你需要準備一個mysql,當前安裝方式是將數據持久化到數據庫中的,這里的部署是單機模式
1、Docker 拉取鏡像
docker pull nacos/nacos-server
PS:這是拉取最新的nacos版本,如果需要拉取別的版本可以加:版本號(如:docker pull nacos/nacos-server:v2.2.0)
2、掛載目錄
mkdir -p /mydata/nacos/logs/ #新建logs目錄
mkdir -p /mydata/nacos/conf/
#新建conf目錄
PS:這一步是添加映射文件夾,將宿主機的文件映射到nacos容器中
3、啟動nacos并復制文件到宿主機,關閉容器
啟動容器
docker run -p 8848:8848 --name nacos -d nacos/nacos-server
復制文件
docker cp nacos:/home/nacos/logs/ /mydata/nacos/logs/
docker cp nacos:/home/nacos/conf/ /mydata/nacos/conf/
關閉容器
docker rm -f nacos
PS:這一步啟動nacos是為了將nacos里面的文件拷貝出到掛載目錄中,這樣我們就可以直接修改掛載目錄中文件來映射到容器里面去了
4、mysql中創建nacos所需的表
mysql中新建一個庫,名字可自定義,這里就用nacos-config
從github中找到創建表的文件,在nacos-config庫中執行,創建所需的表
5、再次啟動nacos
docker run -d
--name nacos
-p 8848:8848 -p 9848:9848 -p 9849:9849
--privileged=true
-e JVM_XMS=256m
-e JVM_XMX=256m
-e MODE=standalone
-v /mydata/nacos/logs/:/home/nacos/logs
-v /mydata/nacos/conf/:/home/nacos/conf/
--restart=always
nacos/nacos-server
PS : 復制上面的語句執行失敗,可以將上面的執行語句變成一行,如下,可直接復制執行
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -v /mydata/nacos/logs/:/home/nacos/logs -v /mydata/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server
語句講解
docker run -d : 啟動容器 -d是后臺啟動并返回容器id的意思
–name nacos :為容器指定一個名稱
-p 8848:8848 -p 9848:9848 -p 9849:9849 : 指定端口映射,注意這里的p不能大寫,大寫是隨機端口映射
–privileged=true : 擴大容器內的權限,將容器內的權限變為root權限,不加的話就是普通用戶權限,可能會出現cannot open directory
-e JVM_XMS=256m : 為jvm啟動時分配的內存
-e JVM_XMX=256m : 為jvm運行過程中分配的最大內存
-e MODE=standalone : 使用 standalone模式(單機模式),MODE值有cluster(集群)模式/standalone模式兩種,MODE必須大寫
-v /mydata/nacos/logs/:/home/nacos/logs : 將容器的/home/nacos/logs目錄掛載到 /mydata/nacos/logs
-v /mydata/nacos/conf/:/home/nacos/conf/: 將容器的/home/nacos/conf目錄掛載到 /mydata/nacos/conf
–restart=always :重啟docker時,自動啟動相關容器
注意事項
需要在防火墻開放相關端口,如果你是云服務器,開放安全組,下面提供相關語句
## 開放端口8848 9848 9849
firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --zone=public --add-port=9848/tcp --permanent
firewall-cmd --zone=public --add-port=9849/tcp --permanent
## 重啟防火墻
firewall-cmd --reload
## 查看所有開啟的端口
firewall-cmd --zone=public --list-ports
PS:這里有點小問題,重啟完防火墻之后,需要重啟docker
## 重啟docker
systemctl restart docker
這里最容易犯錯的就是掛載目錄對應不上,可以看下自己語句中的-v 后面的目錄是否映射正確,博主第一次安裝的時候logs里面還有一個logs文件夾,conf里面還有個conf文件夾,導致出錯
6、修改配置文件
主要修改的是application.properties文件
## 在宿主機中修改application.properties文件
vim /mydata/nacos/conf/application.properties
文件修改的地方(修改為你對應的mysql)
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root
PS :因為我們在第三步已經復制了logs和conf到了我們的宿主機里面,那么我們可以直接修改application.properties文件映射到容器里,可以通過下面的語句來查看
## 進入到nacos容器里
docker exec -it nacos /bin/bash
## 查看application.properties文件
cat /home/nacos/conf/application.properties
## 退出容器
exit
PS:如果文件沒有修改成功的話,說明掛載目錄映射的不對,仔細查看一下,可以通過下面的方法來查看是否正確
docker inspect --format="{{json .Mounts}}" nacos
7、訪問頁面
http://ip:8848/nacos/index.html
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。