我尝试用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
连接然后领事成员呢?有什么理由不这样做呢?consul
consul join
我还建议使用静态文件方法来发现 Swarm 代理。我知道最快、最简单、最安全的意思!
你应该看看:如何在多主机之间创建docker覆盖网络?它可能会帮助你。
归档时间: |
|
查看次数: |
4727 次 |
最近记录: |