8、ubuntu docker-compose 安裝consul集群

1、創(chuàng)建需要映射的目錄

mkdir -p /docker/consul/{server1,server2,server3}/{config,data}

mkdir -p /docker/consul/client1/{config,data}

2、創(chuàng)建網(wǎng)絡(luò)環(huán)境

docker network create --driver=bridge --subnet=172.20.0.0/16 wfw

3、給文件夾授權(quán)

chmod -R 777 /docker/consul/

4、編寫docker-compose.yml

cat > /docker/consul/docker-compose.yml <<END

version: '3'

services:

? consulnode1:

? ? image: consul

? ? container_name: consulnode1

? ? command: agent -server -bootstrap-expect=3 -config-dir=/consul/config -node=consulnode1 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1

? ? volumes:

? ? ? - /docker/consul/server1/data:/consul/data

? ? ? - /docker/consul/server1/config:/consul/config

? ? networks:

? ? ? - wfw

? consulnode2:

? ? image: consul

? ? container_name: consulnode2

? ? command: agent -server -config-dir=/consul/config -retry-join=consulnode1 -node=consulnode2 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1

? ? volumes:

? ? ? - /docker/consul/server2/data:/consul/data

? ? ? - /docker/consul/server2/config:/consul/config

? ? depends_on:

? ? ? ? - consulnode1

? ? networks:

? ? ? - wfw

? consulnode3:

? ? image: consul

? ? container_name: consulnode3

? ? command: agent -server -config-dir=/consul/config -retry-join=consulnode1 -node=consulnode3 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1

? ? volumes:

? ? ? - /docker/consul/server3/data:/consul/data

? ? ? - /docker/consul/server3/config:/consul/config

? ? depends_on:

? ? ? ? - consulnode1

? ? networks:

? ? ? - wfw

? consulnode4:

? ? image: consul

? ? container_name: consulnode4

? ? command: agent -config-dir=/consul/config -retry-join=consulnode1 -node=consulnode4 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=dc1 -ui

? ? volumes:

? ? ? - /docker/consul/client1/data:/consul/data

? ? ? - /docker/consul/client1/config:/consul/config

? ? ports:

? ? ? - 8500:8500

? ? depends_on:

? ? ? ? - consulnode2

? ? ? ? - consulnode3

? ? networks:

? ? ? - wfw

networks:

? wfw:

? ? external: true

END

5、查看集群和leader

進入目錄

cd /docker/consul/

#啟動

docker-compose up -d?

#查看列表

docker?exec?-t?consulnode1?consul?members

#查看誰是領(lǐng)導(dǎo)者

docker?exec?-t?consulnode1?consul?operator?raft?list-peers

6、打開localhost:8500查看node

7、使用命令進行集群測試

docker exec -t consulnode1 consul kv put hello world? ?# hello 是key,world 是value 意思就是put了一個字典項

#顯示后面內(nèi)容為正常:Success! Data written to: hello

#從其他consul獲取值

docker exec -t consulnode2 consul kv get hello? ? ?

#顯示world,表示集群數(shù)據(jù)同步了。

8、停止docker中consolnode1,查看leader重新選舉

docker stop consulnode1? ?#停止容器

docker?exec?-t?consulnode1?consul?operator?raft?list-peers? #查看當前列表,可以看到leader發(fā)生變化

#重復(fù)第7步可查看集群消息同步

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容