泊坞窗群初始化不能选择一个IP地址错误

问题描述 投票:18回答:5

与多克群与码头工人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地址通告,因为这个系统有多个地址

我不知道发生了什么事。任何人有任何想法如何调试?

docker docker-swarm docker-machine docker-for-mac docker-desktop
5个回答
19
投票

更新2017年5月24日:

现有的答案是对的群模式的早期状态。秘密和自动接受选项,至今已删除,这个广告地址选项已被添加。现在这可以做到用:

docker swarm init \
  --advertise-addr $(docker-machine ip node-1)

该端口将默认为2377.您还可以使用网络接口名称,而不是IP地址和群将查找该接口的IP地址。监听器地址仍是一个选项,但默认是监听所有的接口通常是首选的解决方案。


原来的答案:

我还没有和泊坞窗机做到了这一点,但我确实知道,新群是在/ etc / hosts中的条目非常敏感。确保你的ip和主机名在该文件中,并且只在一个地方(不是也映射到环回或任何其他内部地址)。作为RC3,他们也在利用监听器地址通告地址,也因此确保该主机名或IP可以通过所有节点在群中引用(很肯定的修复即将到来的,如果不是已经在这里)。

为了尽量减少问题的客户端和服务器版本之间的风险,我也直接VirtualBox的内部运行的命令,而不是泊坞窗机的环境变量。


14
投票

首先看你的机器的网络上的公共IP

ifconfig

挑物理一个像192.168.1.x的(未docker0,这是一个虚拟IP内部泊坞)

docker swarm init --advertise-addr 192.1.68.1.x

(默认为端口2377)


7
投票

据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”


5
投票

使用泊坞窗时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然后工作了。


1
投票

检查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

© www.soinside.com 2019 - 2024. All rights reserved.