为集群配置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
参考文档: