一尘不染

Docker Swarm-网络覆盖未连接所有容器

docker

我目前使用Docker
Swarm和Consul设置了3个EC2实例。我有3个简单的节点应用程序分布在所有3个实例上,然后使用nginx在我的集群主机上进行路由。

使用覆盖网络指南,我创建了一个名为的新覆盖,mynet并使每个容器都连接到该网络。使用docker inspectI可以确认每个节点容器和nginx容器都已连接mynet并具有IP。但是,在进入我的nginx容器后,它只能通过网络与位于同一主机上的节点应用程序通信,而不能与集群中其他主机上的节点应用程序通信。

运行后docker network inspect mynet,仅列出了我的两个容器(位于同一主机上的nginx和一个节点实例),而未列出其他两个容器,即使它们的名称和IP来自,也是如此docker inspect

这个想法是使用nginx反向代理将联机的任何新容器添加到它的配置中,但是一直困扰着使容器全部连接。根据用于覆盖Docker网络文档,这应该是可能的。

我究竟做错了什么?谢谢。

编辑:

垃圾邮件docker network inspect mynet几次后,即使我关闭了所有防火墙并打开了端口以进行测试,容器似乎仍在不断地与网络连接和断开连接。是什么原因引起的呢?


阅读 383

收藏
2020-06-17

共1个答案

一尘不染

原来有两个问题导致了我的问题。

一种是我正在使用docker network overlay不支持的内核3.13 。升级到3.16可解决此问题。其次,Swarm
1.0.1中存在一个错误,该错误确实正确聚合了网络信息。它已在此处修复但截至撰写本文时尚未发布。

2020-06-17