无法连接到 digitalocean 上的 docker swarm
Can't connect to docker swarm on digitalocean
我对 docker swarm 有点问题。我在 DigitalOcean 上创建了 2 个实例,我将分别使用 public ip 地址 100.0.0.1 和 100.0.0.2 来引用它们。我以 root 身份进入第一个 Droplet 并尝试 运行 命令 docker swarm init
并且它返回了一个错误 eth0
is bound to 2 ip addresses the public ip address and一个私有 IP 地址。
然后我尝试了 运行 docker swarm init --advertise-addr 10.0.0.1
来防止这种情况并且群工作。但是每当我尝试使用连接命令从第二个液滴或我的本地机器的任何地方连接到它时,它都会打印出来 returns Error response from daemon: Timeout was reached before node was joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.
但它永远不会连接到群。
我在没有 advertise-addr 的 ec2 上尝试了 运行 相同的方法,它工作得很好这个问题只在我使用 DigitalOcean 时出现。有帮助吗?
谢谢。
在撰写本文时,Docker 的 DigitalOcean one-click-app 似乎已损坏,并且由于某种原因无法连接群节点。我找到的唯一解决方法是 运行 普通 ubuntu(或任何其他 OS)图像并手动安装 Docker。这似乎解决了问题。
它也对我有用。我尝试使用 docker 17.12.0 附带的一键式应用程序,但它没有用。然后我尝试使用 docker 18.06.1 全新安装 Ubuntu,它运行良好。
对于 DigitalOcean docker-18-04
图片:
- Swarm 管理器需要的开放端口:
ufw allow 22/tcp
ufw allow 2376/tcp
ufw allow 2377/tcp
ufw allow 7946/tcp
ufw allow 7946/udp
ufw allow 4789/udp
ufw reload
ufw enable
这些端口需要在管理节点和工作节点上都打开!
2.重启Docker:systemctl restart docker
3.在Droplet中查看你的私有网络名称:
ifconfig -a
4. Init swarm with docker swarm init --advertise-addr eth1:2377
其中 eth1
是 Droplet 专用网络的名称。
然后您将能够从工作节点加入此网络。
我对 docker swarm 有点问题。我在 DigitalOcean 上创建了 2 个实例,我将分别使用 public ip 地址 100.0.0.1 和 100.0.0.2 来引用它们。我以 root 身份进入第一个 Droplet 并尝试 运行 命令 docker swarm init
并且它返回了一个错误 eth0
is bound to 2 ip addresses the public ip address and一个私有 IP 地址。
然后我尝试了 运行 docker swarm init --advertise-addr 10.0.0.1
来防止这种情况并且群工作。但是每当我尝试使用连接命令从第二个液滴或我的本地机器的任何地方连接到它时,它都会打印出来 returns Error response from daemon: Timeout was reached before node was joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.
但它永远不会连接到群。
我在没有 advertise-addr 的 ec2 上尝试了 运行 相同的方法,它工作得很好这个问题只在我使用 DigitalOcean 时出现。有帮助吗?
谢谢。
在撰写本文时,Docker 的 DigitalOcean one-click-app 似乎已损坏,并且由于某种原因无法连接群节点。我找到的唯一解决方法是 运行 普通 ubuntu(或任何其他 OS)图像并手动安装 Docker。这似乎解决了问题。
它也对我有用。我尝试使用 docker 17.12.0 附带的一键式应用程序,但它没有用。然后我尝试使用 docker 18.06.1 全新安装 Ubuntu,它运行良好。
对于 DigitalOcean docker-18-04
图片:
- Swarm 管理器需要的开放端口:
ufw allow 22/tcp
ufw allow 2376/tcp
ufw allow 2377/tcp
ufw allow 7946/tcp
ufw allow 7946/udp
ufw allow 4789/udp
ufw reload
ufw enable
这些端口需要在管理节点和工作节点上都打开!
2.重启Docker:systemctl restart docker
3.在Droplet中查看你的私有网络名称:
ifconfig -a
4. Init swarm with docker swarm init --advertise-addr eth1:2377
其中 eth1
是 Droplet 专用网络的名称。
然后您将能够从工作节点加入此网络。