使用Docker部署Nacos并配置MySQL數(shù)據(jù)源的詳細(xì)步驟
前言
在安裝 Nacos 之前,請(qǐng)確保你已經(jīng)準(zhǔn)備好了一個(gè)運(yùn)行中的 MySQL 數(shù)據(jù)庫(kù)。本教程將指導(dǎo)您如何使用 Docker 在單機(jī)模式下部署 Nacos,并將其數(shù)據(jù)持久化到 MySQL 中。
步驟一:拉取 Nacos 鏡像
拉取最新版本的 Nacos Server 鏡像,也可以指定特定版本:
docker pull nacos/nacos-server
如果你想拉取特定版本,例如 v2.2.0,則執(zhí)行:
docker pull nacos/nacos-server:v2.2.0
步驟二:創(chuàng)建并掛載目錄
在宿主機(jī)上創(chuàng)建兩個(gè)目錄用于日志和配置文件映射:
mkdir -p /mydata/nacos/logs/ mkdir -p /mydata/nacos/conf/
注意:這些目錄將作為數(shù)據(jù)卷掛載到容器內(nèi)部,使得我們可以在宿主機(jī)直接修改相關(guān)文件。
步驟三:臨時(shí)啟動(dòng)并復(fù)制文件
- 啟動(dòng)一個(gè)臨時(shí)的 Nacos 容器以便從容器內(nèi)復(fù)制配置文件至宿主機(jī):
docker run -d --name nacos-temp -p 8848:8848 nacos/nacos-server
- 將容器內(nèi)的配置文件和日志文件復(fù)制到宿主機(jī)對(duì)應(yīng)的目錄:
docker cp nacos-temp:/home/nacos/logs/ /mydata/nacos/ docker cp nacos-temp:/home/nacos/conf/ /mydata/nacos/
- 關(guān)閉并移除臨時(shí)容器:
docker rm -f nacos-temp
步驟四:在 MySQL 中創(chuàng)建 Nacos 所需表結(jié)構(gòu)
在 MySQL 中新建數(shù)據(jù)庫(kù) nacos-config
(或其他自定義名稱(chēng)),然后從 Nacos GitHub 倉(cāng)庫(kù) 中找到并執(zhí)行創(chuàng)建表結(jié)構(gòu)的 SQL 腳本。
步驟五:正式啟動(dòng) Nacos 并設(shè)置環(huán)境變量
以下命令用于啟動(dòng)一個(gè)帶有持久化配置且連接了 MySQL 數(shù)據(jù)庫(kù)的 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 \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e DB_NUM=1 \ -e DB_URL_0=jdbc:mysql://localhost:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC \ -e DB_USER=root \ -e DB_PASSWORD=root \ -v /mydata/nacos/logs/:/home/nacos/logs \ -v /mydata/nacos/conf/:/home/nacos/conf \ --restart=always \ nacos/nacos-server
命令參數(shù)說(shuō)明:
-d
表示以守護(hù)進(jìn)程模式運(yùn)行容器。-p
參數(shù)用于端口映射。--privileged=true
提升容器權(quán)限。-e
設(shè)置環(huán)境變量,包括 JVM 內(nèi)存大小、運(yùn)行模式以及 MySQL 數(shù)據(jù)庫(kù)連接信息。-v
掛載數(shù)據(jù)卷。
網(wǎng)絡(luò)與防火墻設(shè)置
確保宿主機(jī)的防火墻規(guī)則允許訪問(wèn) Nacos 相關(guān)端口(8848, 9848 和 9849)。對(duì)于 Linux 系統(tǒng),可以使用以下命令:
firewall-cmd --permanent --add-port=8848/tcp firewall-cmd --permanent --add-port=9848/tcp firewall-cmd --permanent --add-port=9849/tcp firewall-cmd --reload systemctl restart docker # 重啟 Docker 服務(wù)以確保新規(guī)則生效
配置文件修改
編輯宿主機(jī)上的 Nacos 配置文件以指向你的 MySQL 實(shí)例:
vim /mydata/nacos/conf/application.properties
更新如下配置項(xiàng):
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
驗(yàn)證配置是否正確映射到容器內(nèi):
docker exec -it nacos /bin/bash cat /home/nacos/conf/application.properties exit
訪問(wèn) Nacos 控制臺(tái)
當(dāng)所有步驟完成后,現(xiàn)在可以通過(guò)瀏覽器訪問(wèn) Nacos 控制臺(tái):
http://<ip>:8848/nacos/index.html
請(qǐng)將 <ip>
替換為實(shí)際服務(wù)器 IP 地址或本地回環(huán)地址 127.0.0.1
。
請(qǐng)注意,上述步驟基于截至撰寫(xiě)本文時(shí)的最佳實(shí)踐,具體操作時(shí),請(qǐng)參照最新的官方文檔及 Docker 鏡像標(biāo)簽進(jìn)行調(diào)整。同時(shí),務(wù)必檢查掛載目錄映射的正確性,確保應(yīng)用配置能夠成功寫(xiě)入容器。
總結(jié)
到此這篇關(guān)于使用Docker部署Nacos并配置MySQL數(shù)據(jù)源的文章就介紹到這了,更多相關(guān)Docker部署Nacos配置MySQL數(shù)據(jù)源內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker搭建devops(騰訊云輕量應(yīng)用服務(wù)器)教程
這篇文章主要為大家介紹了docker搭建devops(騰訊云輕量應(yīng)用服務(wù)器)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Docker安裝RabbitMQ后訪問(wèn)報(bào)錯(cuò)的最佳解決方案
這篇文章主要介紹了Docker安裝RabbitMQ后訪問(wèn)報(bào)錯(cuò)的最佳解決方案,錯(cuò)誤通常是由于RabbitMQ的安全配置導(dǎo)致的,RabbitMQ默認(rèn)配置允許的用戶僅能通過(guò)localhost訪問(wèn),文中通過(guò)圖文講解的非常詳細(xì),需要的朋友可以參考下2025-01-01docker-maven-plugin 插件無(wú)法拉取對(duì)應(yīng)jar包問(wèn)題
這篇文章主要介紹了docker-maven-plugin 插件無(wú)法拉取問(wèn)題,總是報(bào)錯(cuò),如何解決這個(gè)問(wèn)題呢,下面小編給大家?guī)?lái)了解決方法,一起看看吧2021-09-09docker容器時(shí)區(qū)錯(cuò)誤問(wèn)題
常出現(xiàn)docker中運(yùn)行的容器獲取到的時(shí)間與北京時(shí)間相差8小時(shí)的問(wèn)題,其實(shí)是因?yàn)槿萜鬟\(yùn)行的時(shí)區(qū)不正確。本文主要介紹了docker容器時(shí)區(qū)錯(cuò)誤問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12docker搭建nacos1.3.0的實(shí)現(xiàn)
這篇文章主要介紹了docker搭建nacos1.3.0的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Docker安裝MySql8并遠(yuǎn)程訪問(wèn)的實(shí)現(xiàn)
本文主要介紹了Docker安裝MySql8并遠(yuǎn)程訪問(wèn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07