与多克群与码头工人Mac版桌面实验。我尝试这样做:
docker-machine create -d virtualbox node-1
docker-machine create -d virtualbox node-2
docker-machine create -d virtualbox node-3
eval $(docker-machine env node-1)
docker swarm init \
--secret my-secret \
--auto-accept worker \
--listen-addr $(docker-machine ip node-1):2377
最后一个命令(docker swarm init
)返回此错误:
从后台程序错误响应:无法选择一个IP地址通告,因为这个系统有多个地址
我不知道发生了什么事。任何人有任何想法如何调试?
更新2017年5月24日:
现有的答案是对的群模式的早期状态。秘密和自动接受选项,至今已删除,这个广告地址选项已被添加。现在这可以做到用:
docker swarm init \
--advertise-addr $(docker-machine ip node-1)
该端口将默认为2377.您还可以使用网络接口名称,而不是IP地址和群将查找该接口的IP地址。监听器地址仍是一个选项,但默认是监听所有的接口通常是首选的解决方案。
原来的答案:
我还没有和泊坞窗机做到了这一点,但我确实知道,新群是在/ etc / hosts中的条目非常敏感。确保你的ip和主机名在该文件中,并且只在一个地方(不是也映射到环回或任何其他内部地址)。作为RC3,他们也在利用监听器地址通告地址,也因此确保该主机名或IP可以通过所有节点在群中引用(很肯定的修复即将到来的,如果不是已经在这里)。
为了尽量减少问题的客户端和服务器版本之间的风险,我也直接VirtualBox的内部运行的命令,而不是泊坞窗机的环境变量。
首先看你的机器的网络上的公共IP
ifconfig
挑物理一个像192.168.1.x的(未docker0,这是一个虚拟IP内部泊坞)
docker swarm init --advertise-addr 192.1.68.1.x
(默认为端口2377)
据Docker's指南:https://docs.docker.com/get-started/part4/#create-a-cluster
收到错误大约需要使用--advertise,地址?
通过运行泊坞窗机LS为虚拟机复制的IP地址,然后再次运行泊坞窗群init命令,使用IP和端口指定2377(端口用于连接群)与--advertise-地址。例如:
泊坞窗机SSH myvm1 “泊坞窗群的init --advertise-地址192.168.99.100:2377”
使用泊坞窗时ENVS连接到泊坞窗机创建了机同样的错误。 docker-machine ssh <machine-name>
和本地机器上做docker swarm init
后,我得到了--advertise-地址的消息也是如此。本地命令docker swarm init --listen-addr 192.168.99.100:2377 --advertise-addr 192.168.99.100:2377
然后工作了。
检查docker --version
并确保客户端和服务器上的版本相同。如果它们是不同的,使用下面的命令来拉,以你的机器上的泊坞窗客户相匹配的boot2docker版本。
docker-machine create --driver virtualbox --virtualbox-boot2docker-url https://github.com/boot2docker/boot2docker/releases/download/v1.12.0-rc4/boot2docker-experimental.iso manager1