-
docker相關(guān)命令
# 啟動(dòng)docker服務(wù)
service docker start
#顯示所有容器(含未運(yùn)行的)
sudo docker ps -a
# 顯示運(yùn)行的容器狀態(tài)
sudo docker ps
docker搭建consul集群
- 在docker上安裝consul(默認(rèn)安裝最新版本)
docker pull consul
- 啟動(dòng)第一個(gè)consul服務(wù):consul1
docker run --name consul1 -d -p 8500:8500 -p 8300:8300 -p 8301:8301 -p 8302:8302 -p 8600:8600 consul:1.2.2 agent -server -bootstrap-expect 2 -ui -bind=0.0.0.0 -client=0.0.0.0
8500 http 端口,用于 http 接口和 web ui
8300 server rpc 端口,同一數(shù)據(jù)中心 consul server 之間通過該端口通信
8301 serf lan 端口,同一數(shù)據(jù)中心 consul client 通過該端口通信
8302 serf wan 端口,不同數(shù)據(jù)中心 consul server 通過該端口通信
8600 dns 端口,用于服務(wù)發(fā)現(xiàn)
-bbostrap-expect 2: 集群至少兩臺(tái)服務(wù)器,才能選舉集群leader
-ui:運(yùn)行 web 控制臺(tái)
-bind: 監(jiān)聽網(wǎng)口,0.0.0.0 表示所有網(wǎng)口,如果不指定默認(rèn)為127.0.0.1,則無法和容器通信
-client : 限制某些網(wǎng)口可以訪問
- 獲取 consul server1 的 ip 地址
docker inspect --format '{{ .NetworkSettings.IPAddress }}' consul1
輸出是:172.17.0.2
- 啟動(dòng)第二個(gè)consul服務(wù):consul2, 并加入consul1(使用join命令)
docker run --name consul3 -d -p 8501:8500 consul agent -server -ui -bind=0.0.0.0 -client=0.0.0.0 -join 172.17.0.2
- 啟動(dòng)第三個(gè)consul服務(wù):consul3,并加入consul1
docker run --name consul3 -d -p 8502:8500 consul agent -server -ui -bind=0.0.0.0 -client=0.0.0.0 -join 172.17.0.2
- 查看運(yùn)行的容器(consul集群狀態(tài))
docker ps