我尝试按照此官方指南运行Consul代理作为Docker容器:https://hub.docker.com/_/consul/
第一个代理成功启动: docker run -d --name = dev-consul consul
但是当我启动命令 docker run -d consul agent -dev -join = 172.17.0.2 第二个代理因错误而停止:
==> Starting Consul agent...
==> Joining cluster...
==> 1 error(s) occurred:
* Failed to join 172.17.0.2: dial tcp 172.17.0.2:8301: i/o timeout
我检查了第一个容器ip是172.17.0.2。我的Docker版本是17.06.2-ce,构建cec0b72。领事版本0.9.3
请告知。
答案 0 :(得分:1)
是的,我认为这不会适用于新版本的docker-machine和当前版本的consul。
你不是唯一一个在评论时遇到问题的人,也是自己尝试(使用相同版本的所有版本)。
尝试启动服务器和几个客户端容器。
docker run -d --name=node0 consul agent -server -client=0.0.0.0 -node=node0 -bootstrap-expect=1 -bind=172.17.0.2 -data-dir=/tmp/consul
docker run -d --name=node1 consul agent -client=0.0.0.0 -node=node1 -bind=172.17.0.3 -data-dir=/tmp/consul -join=172.17.0.2
docker run -d --name=node1 consul agent -client=0.0.0.0 -node=node2 -bind=172.17.0.4 -data-dir=/tmp/consul -join=172.17.0.2
老实说,无论如何,在'dev'模式下没有太多的意义。