我尝试用swarm和设置docker cluster consul.我有manager,host1和host2.
我在经理上运行consul和swarm manager容器.
$ docker run --rm -p 8500:8500 progrium/consul -server -bootstrap
$ docker run -d -p 2377:2375 swarm manage consul://<manager>:8500
Run Code Online (Sandbox Code Playgroud)
在host1和host2上,我用--cluster-store和修改守护进程选项--cluster-advertise,然后重新启动docker daemon.
host1
DOCKER_OPTS="--cluster-store=consul://<manager>:8500 --cluster-advertise=<host1>:2375"
host2
DOCKER_OPTS="--cluster-store=consul://<manager>:8500 --cluster-advertise=<host2>:2375"
Run Code Online (Sandbox Code Playgroud)
当我将host1和host2加入swarm时,它会失败.
host1 $ docker run --rm swarm join --advertise=<host1>:2375 consul://<manager>:8500
host2 $ docker run --rm swarm join --advertise=<host2>:2375 consul://<manager>:8500
Run Code Online (Sandbox Code Playgroud)
从swarm管理器日志中,它出错了.
time="2016-01-20T02:17:17Z" level=error msg="Get http://<host1>:2375/v1.15/info: dial tcp <host1>:2375: getsockopt: connection refused"
time="2016-01-20T02:17:20Z" level=error msg="Get http://<host2>:2375/v1.15/info: dial tcp <host2>:2375: getsockopt: connection refused"
Run Code Online (Sandbox Code Playgroud)
您是否正在运行 consul 来进行多主机网络发现或 Swarm 代理发现?
您尝试检查过吗consul members?你为什么不跑去本地docker daemon连接然后领事成员呢?有什么理由不这样做呢?consulconsul join
我还建议使用静态文件方法来发现 Swarm 代理。我知道最快、最简单、最安全的意思!
你应该看看:如何在多主机之间创建docker覆盖网络?它可能会帮助你。
| 归档时间: |
|
| 查看次数: |
4727 次 |
| 最近记录: |