Docker啟動安裝nacos的實現(xiàn)示例
前言
- 安裝之前你需要準(zhǔn)備一個mysql,當(dāng)前安裝方式是將數(shù)據(jù)持久化到數(shù)據(jù)庫中的,這里的部署是單機(jī)模式
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:這一步是添加映射文件夾,將宿主機(jī)的文件映射到nacos容器中
3、啟動nacos并復(fù)制文件到宿主機(jī),關(guān)閉容器
啟動容器
docker run -p 8848:8848 --name nacos -d nacos/nacos-server
復(fù)制文件
docker cp nacos:/home/nacos/logs/ /mydata/nacos/ docker cp nacos:/home/nacos/conf/ /mydata/nacos/
關(guān)閉容器
docker rm -f nacos
- PS:這一步啟動nacos是為了將nacos里面的文件拷貝出到掛載目錄中,這樣我們就可以直接修改掛載目錄中文件來映射到容器里面去了
4、mysql中創(chuàng)建nacos所需的表
- mysql中新建一個庫,名字可自定義,這里就用nacos-config
- 從github中找到創(chuàng)建表的文件,在nacos-config庫中執(zhí)行,創(chuàng)建所需的表
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 : 復(fù)制上面的語句執(zhí)行失敗,可以將上面的執(zhí)行語句變成一行,如下,可直接復(fù)制執(zhí)行
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不能大寫,大寫是隨機(jī)端口映射
- –privileged=true : 擴(kuò)大容器內(nèi)的權(quán)限,將容器內(nèi)的權(quán)限變?yōu)閞oot權(quán)限,不加的話就是普通用戶權(quán)限,可能會出現(xiàn)cannot open directory
- -e JVM_XMS=256m : 為jvm啟動時分配的內(nèi)存
- -e JVM_XMX=256m : 為jvm運行過程中分配的最大內(nèi)存
- -e MODE=standalone : 使用 standalone模式(單機(jī)模式),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時,自動啟動相關(guān)容器
注意事項
- 需要在防火墻開放相關(guān)端口,如果你是云服務(wù)器,開放安全組,下面提供相關(guān)語句
## 開放端口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
- 這里最容易犯錯的就是掛載目錄對應(yīng)不上,可以看下自己語句中的-v 后面的目錄是否映射正確,博主第一次安裝的時候logs里面還有一個logs文件夾,conf里面還有個conf文件夾,導(dǎo)致出錯
6、修改配置文件
- 主要修改的是application.properties文件
## 在宿主機(jī)中修改application.properties文件 vim /mydata/nacos/conf/application.properties
- 文件修改的地方(修改為你對應(yīng)的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 :因為我們在第三步已經(jīng)復(fù)制了logs和conf到了我們的宿主機(jī)里面,那么我們可以直接修改application.properties文件映射到容器里,可以通過下面的語句來查看
## 進(jìn)入到nacos容器里 docker exec -it nacos /bin/bash ## 查看application.properties文件 cat /home/nacos/conf/application.properties ## 退出容器 exit
- PS:如果文件沒有修改成功的話,說明掛載目錄映射的不對,仔細(xì)查看一下,可以通過下面的方法來查看是否正確
docker inspect --format="{{json .Mounts}}" nacos
7、訪問頁面
http://ip:8848/nacos/index.html
到此這篇關(guān)于Docker啟動安裝nacos的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Docker啟動安裝nacos內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決誤刪docker目錄/var/lib/docker/overlay2,導(dǎo)致容器build失敗問題
文章介紹了Docker的overlay2存儲驅(qū)動,解釋了其分層存儲機(jī)制和節(jié)省空間的方式,刪除/var/lib/docker/overlay2目錄下的文件導(dǎo)致容器無法啟動,通過重啟Docker并使用`docker?system?prune`和`docker?system?prune?-a`命令可以清理不必要的鏡像、容器和網(wǎng)絡(luò),釋放磁盤空間2025-10-10
Docker啟動容器報錯:Ports are not available的解決方案
這篇文章主要介紹了Docker啟動容器報錯:Ports are not available的解決方案,Docker 將容器程序的端口號映射到宿主機(jī)的端口號,是一個 NAT 過程,這個過程可能會因為與 Windows NAT 服務(wù)沖突而失效,文中有詳細(xì)的解決方案,需要的朋友可以參考下2024-03-03
Docker搭建OpenLDAP+phpLDAPadmin統(tǒng)一用戶認(rèn)證的方法
這篇文章主要介紹了Docker搭建OpenLDAP+phpLDAPadmin統(tǒng)一用戶認(rèn)證,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
寫給前端的nginx配置指南基于docker所有配置秒級運行(最新講解)
這篇文章主要介紹了寫給前端的nginx配置指南基于docker所有配置秒級運行,通過?docker?高效學(xué)習(xí)?nginx?配置,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
Linux執(zhí)行Docker命令提示Get Permission Denied的解決方案
這篇文章主要介紹了Linux執(zhí)行Docker命令提示Get Permission Denied的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-06-06

