目錄
一、介紹
二、單個部署
三、多個部署
?每篇一獲
一、介紹
Nacos?是阿里巴巴開源的一個更易于構(gòu)建云原生應用的動態(tài)服務發(fā)現(xiàn)、配置管理和服務管理平臺。
Nacos的主要功能包括:
-
服務發(fā)現(xiàn)和服務健康檢查:Nacos能夠幫助您實現(xiàn)自動服務注冊、發(fā)現(xiàn)和健康檢查。
-
動態(tài)配置服務:Nacos能夠幫助您在所有環(huán)境中管理和維護應用的配置。您可以在Nacos中集中式管理應用的配置,并動態(tài)地推送配置更新。
-
動態(tài)DNS服務:Nacos提供了一種基于DNS協(xié)議的服務發(fā)現(xiàn)機制,可以更好地支持Kubernetes和Istio等云原生環(huán)境。
-
服務和元數(shù)據(jù)管理:Nacos能夠幫助您管理微服務和元數(shù)據(jù),包括流量管理、負載均衡、路由和鑒權(quán)等。
Nacos的目標是幫助您更快、更容易地構(gòu)建、交付和管理微服務平臺,從而使您能夠更好地支持云原生應用的開發(fā)和運維。
二、單個部署
docker訪問沒有開啟先執(zhí)行以下命令開啟docker的服務:
systemctl start docker
在linux中創(chuàng)建一個工作目錄
命令:
mkdir -p mysql/{conf,data,script} ?
mysql中有conf存放配置文件,mysql中有data存放數(shù)據(jù)的,script中是存放sql腳本
在將配置文件從主機拖到conf文件中:
創(chuàng)建一個mysql容器名稱為m1,自動連接了默認網(wǎng)絡(luò)中的網(wǎng)橋(Bridge)
docker run \
--name m1 \
-v /root/mode/mysql/conf/my.cnf:/etc/my.cnf \
-v /root/mode/mysql/data:/var/lib/mysql \
-v /root/mode/mysql/script:/script \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql/mysql-server:5.7
進入我們創(chuàng)建的mysql容器進行登錄
進入:
docker exec -it m1 bash
登入mysql:
mysql -uroot -p
輸入我們在創(chuàng)建是設(shè)置的密碼即可登入,也就是123456,輸入時是看不見輸入的密碼的
?
?
在創(chuàng)建一個數(shù)據(jù)庫來存放數(shù)據(jù):
create database nacos;
使用創(chuàng)建的數(shù)據(jù)庫:
use nacos;
在我們創(chuàng)建數(shù)據(jù)的script目錄中存放sql腳本,將使用目錄掛載后容器也會有這個腳本,在主機中將腳本拖入即可
之后執(zhí)行命令,將腳本在MySQL中執(zhí)行,容器與虛擬機對應的目錄,進行了目錄掛載?
執(zhí)行指定路徑中sql的腳本:
source ?/script/nacos-mysql.sql; ?
之后查看數(shù)據(jù)表:
show tables;
在進行用戶的授權(quán)及密碼設(shè)置:
grant all on *.* to root@'%' identified by '123456';
其中root為用戶名稱,123456為用戶的密碼。
之后退出:
之后重啟mysql :
docker restart m1
下載nacos的鏡像:
docker pull nacos/nacos-server ?
查看m1容器的信息:
docker inspect m1
需要知道這個容器的IP。
開放需要訪問的端口,如果已經(jīng)開放可以省略:
查看防火墻列表的端口:
?firewall-cmd --zone=public --list-ports
開放端口8848:
?firewall-cmd --zone=public --add-port=8848/tcp --permanent
更新防火墻端口:
?firewall-cmd --reload
之后創(chuàng)建并且運行nacos,及配置MySQL中的用戶密碼及m1的IP和端口映射
docker run -itd \
-e PREFER_HOST_MODE=ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-p 8848:8848 \
--name nacos \
nacos/nacos-server
可以使用命令查看該容器是否運行成功:
docker logs nacos
nacos為容器名稱》
如圖說明運行成功。。
成功后在主機中訪問nacos:
登入后增加一個配置列表:
在進入m1容器,登入后進行配置列表的查詢:
select * from config_info;
三、多個部署
在nacos中查看我們部署的節(jié)點(只有一個):
創(chuàng)建一個自定義網(wǎng)絡(luò):
docker network create --subnet 172.18.0.0/16 mode
自定義網(wǎng)絡(luò)和網(wǎng)橋的IP地址是不一樣的,然后需要將這兩個網(wǎng)連接起來:
docker network connect mode m1
m1連接mode網(wǎng)絡(luò)。。
在查看m1容器:
docker inspect m1
創(chuàng)建并且運行nacos01,及配置MySQL中的用戶密碼及m1的IP和端口映射,還配置自定義網(wǎng)絡(luò)的IP:
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.102:8848 172.18.0.103:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=m1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ -p 8848:8848 \ --name nacos01 \ --net mode \ --ip 172.18.0.101 \ --restart=always \ nacos/nacos-server
在查看nacos中的節(jié)點列表:
之后再將另外兩個創(chuàng)建出來,給與相應的配置,名稱nacos02,nacos03:
命令:docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.101:8848 172.18.0.103:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=m1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ --name nacos02 \ --net mode \ --ip 172.18.0.102 \ --restart=always \ nacos/nacos-server
docker run -itd \ -e PREFER_HOST_MODE=ip \ -e MODE=cluster \ -e NACOS_SERVERS="172.18.0.101:8848 172.18.0.102:8848" \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=m1 \ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=123456 \ --name nacos03 \ --net mode \ --ip 172.18.0.103 \ --restart=always \ nacos/nacos-server
再查看節(jié)點狀態(tài):
接下來進行負載均衡
在mode目錄中創(chuàng)建目錄:
mkdir -p nginx/conf.d
在conf.d目錄中創(chuàng)建并且編輯配置文件default.conf
創(chuàng)建編輯:
vim default.conf
?編輯以下內(nèi)容:
#服務器的集群 upstream nacosList { server nacos01:8848 weight=1; server nacos02:8848 weight=1; server nacos03:8848 weight=1; } server { listen 80; server_name www.zkingedu.com; location / { root /etc/nginx/html/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location /nacos { proxy_pass http://nacosList; } }
集群nacos01,nacos02,nacos03的容器IP
按 i? 進行編輯,按Esc退出編輯,并且輸入:wq 保存編輯并且退出;?
創(chuàng)建并且運行負載均衡的容器
命令:
docker run -itd \ --name nginx \ -v /root/mode/nginx/conf.d:/etc/nginx/conf.d \ -p 80:80 \ --net mode \ nginx
之后用虛擬機IP加上路徑/nacos即可訪問,并且負載均衡已實現(xiàn):
?每篇一獲
在Linux上使用Docker進行Nacos集群部署,可以帶來以下幾個方面的收獲:
-
簡化部署過程:Docker可以將應用及其依賴打包在一起,形成一個標準化的單元,這使得部署過程變得非常簡單。您只需要一個Docker命令,就可以在任何支持Docker的平臺上部署Nacos。
-
提高資源利用率:Docker容器相比傳統(tǒng)的虛擬機有更小的性能開銷,可以更高效地利用系統(tǒng)資源。這意味著您可以在同樣的硬件上運行更多的Nacos實例。
-
易于擴展和維護:使用Docker Swarm或Kubernetes等容器編排工具,可以輕松地對Nacos集群進行擴展和維護。當需要增加Nacos實例以應對更大的負載時,您只需要簡單地調(diào)整編排配置即可。
-
環(huán)境一致性:Docker可以確保在不同環(huán)境中運行的Nacos實例有著一致的運行環(huán)境,這大大減少了因環(huán)境差異導致的問題。
-
便于故障排查和恢復:當Nacos實例出現(xiàn)問題時,您可以通過查看Docker容器的日志來進行故障排查。如果需要恢復到某個狀態(tài),只需要重新啟動相應的Docker容器即可。文章來源:http://www.zghlxwxcb.cn/news/detail-803973.html
總的來說,使用Docker進行Nacos集群部署,可以使得部署和運維工作變得更加簡單、高效和可靠。文章來源地址http://www.zghlxwxcb.cn/news/detail-803973.html
到了這里,關(guān)于【Docker】在Linux使用Docker進行nacos集群部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!