http://www.itdecent.cn/p/df3ef9a4f456
docker拉取最新的consul鏡像:docker pull consul
創(chuàng)建數(shù)據(jù)中心1:docker run -d -p 8501:8500 --restart=always -v /e/docker/consul/data/server1:/consul/data -v /e/docker/consul/conf/server1:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --privileged=true --name=consul_server_1 consul agent -server -bootstrap-expect=3 -ui -node=node_consul_server_1 -client='0.0.0.0' -data-dir /consul/data -config-dir /consul/config -datacenter=dc1
linux:docker run -d -p 8501:8500 --restart=always -v /home/mysite/docker/consul/data/server1:/consul/data -v /home/mysite/docker/consul/conf/server1:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --privileged=true --name=consul_server_1 consul agent -server -bootstrap-expect=3 -ui -node=consul_server_1 -client='0.0.0.0' -data-dir /consul/data -config-dir /consul/config -datacenter=tengxun
通過執(zhí)行?docker inspect -f '{{.NetworkSettings.IPAddress}}' consul_server_1 獲取server1的IP
創(chuàng)建server2和3并加入節(jié)點(diǎn):
docker run -d -p 8502:8500 --restart=always -v /e/docker/consul/data/server2:/consul/data -v /e/docker/consul/conf/server2:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --privileged=true --name=consul_server_2 consul agent -server -ui -node=consul_server_2 -client='0.0.0.0' -data-dir /consul/data -config-dir /consul/config -datacenter=dc1 -join 172.17.0.2
docker run -d -p 8503:8500 --restart=always -v /e/docker/consul/data/server3:/consul/data -v /e/docker/consul/conf/server3:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --privileged=true --name=consul_server_3 consul agent -server -ui -node=consul_server_3 -client='0.0.0.0' -data-dir /consul/data -config-dir /consul/config -datacenter=dc1 -join 172.17.0.2
linux:docker run -d -p 8503:8500 --restart=always -v /home/mysite/docker/consul/data/server2:/consul/data -v /home/mysite/docker/consul/conf/server2:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --privileged=true --name=consul_server_2 consul agent -server -ui -node=consul_server_2 -client='0.0.0.0' -data-dir /consul/data -config-dir /consul/config -datacenter=tengxun -join 172.17.0.8
docker run -d -p 8502:8500 --restart=always -v /home/mysite/docker/consul/data/server3:/consul/data -v /home/mysite/docker/consul/conf/server3:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --privileged=true --name=consul_server_3 consul agent -server -ui -node=consul_server_3 -client='0.0.0.0' -data-dir /consul/data -config-dir /consul/config -datacenter=tengxun -join 172.17.0.8
-bootstarp-expect 3 3個才會啟動集群,少于的話啟動失?。ㄋ栽诔晒?chuàng)建第三個server前,查看ui是失敗的)
執(zhí)行:docker exec consul_server_1 consul operator raft list-peers 查看consul狀態(tài)
創(chuàng)建client1:docker run -d -p 8504:8500 --restart=always -v /e/docker/consul/conf/client1:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --name=consul_client_1 consul agent -node=consul_client_1 -client='0.0.0.0' -config-dir /consul/config -datacenter=dc1 -join 172.17.0.2
創(chuàng)建:client2: docker run -d -p 8505:8500 --restart=always -v /e/docker/consul/conf/client2:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --name=consul_client_2 consul agent -node=consul_client_2 -client='0.0.0.0' -config-dir /consul/config -datacenter=dc1 -join 172.17.0.2
docker run -d -p 8504:8500 --restart=always -v /home/mysite/docker/consul/conf/client1:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --name=consul_client_1 consul agent -node=consul_client_1 -client='0.0.0.0' -config-dir /consul/config -datacenter=tengxun -join 172.17.0.8
docker run -d -p 8505:8500 --restart=always -v /home/mysite/docker/consul/conf/client2:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --name=consul_client_2 consul agent -node=consul_client_2 -client='0.0.0.0' -config-dir /consul/config -datacenter=tengxun -join 172.17.0.8
創(chuàng)建數(shù)據(jù)中心2:docker run -d --name=consul2-1 -e CONSUL_BIND_INTERFACE='eth0' consul agent -server -bootstrap-expect 2 -datacenter='datacenter2'
查詢數(shù)據(jù)中心1的容器IP:docker inspect --format '{{ .NetworkSettings.IPAddress }}' consul1-1
將數(shù)據(jù)中心2關(guān)聯(lián)到數(shù)據(jù)中心1上:?docker exec -it consul2-1 consul join -wan 172.17.0.3(好像不是這樣子的)
將節(jié)點(diǎn)添加數(shù)據(jù)中心2:docker run -d --name=consul2-2 -e CONSUL_BIND_INTERFACE=eth0 consul agent --datacenter=datacenter2 --server=true --client=0.0.0.0 --join 172.17.0.4
重點(diǎn):
linux服務(wù)器上部署了一個consul server,然后其中docker中部署了3個server和2個client,但是server無法加入到集群中,client可以。搞了半天,最后發(fā)現(xiàn)兩個consul的版本不一樣,最后將 docker中的鏡像更新到1.8.3和服務(wù)器上一致,問題解決。起始在docker的日志中可以看到提示版本的問題