为集群配置docker的用户自定义网络,这样节点之间才能通过名称而不是IP通讯(因为IP会发生变化);
docker network create consul
建立节点
docker run \
--name=consul-1 \
-d \
--network=consul \
-e CONSUL_LOCAL_CONFIG='{"skip_leave_on_interrupt": true}' \
consul agent -server -bootstrap-expect=3 -client 0.0.0.0
docker run \
--name=consul-2 \
-d \
--network=consul \
-e CONSUL_LOCAL_CONFIG='{"skip_leave_on_interrupt": true}' \
consul agent -server -bootstrap-expect=3 -client 0.0.0.0 \
-join=consul-1
docker run \
--name=consul-3 \
-d \
--network=consul \
-e CONSUL_LOCAL_CONFIG='{"skip_leave_on_interrupt": true}' \
consul agent -server -bootstrap-expect=3 -client 0.0.0.0 \
-join=consul-1
3个节点都启动完成后集群就正常工作了,可以进行测试
docker exec -t consul-1 consul members
查看选举到的leader
curl http://172.18.0.2:8500/v1/status/leader
查看peer
curl http://172.18.0.2:8500/v1/status/peers
参考文档:
