【发布时间】:2015-12-19 21:27:38
【问题描述】:
我目前使用 Docker Swarm 和 Consul 设置了 3 个 EC2 实例。我有 3 个简单的节点应用程序分布在所有 3 个实例中,然后在我的 swarm master 上使用 nginx 进行路由。
使用Overlay Networks 的指南,我创建了一个名为mynet 的新叠加层,并将每个容器都连接到该网络。使用docker inspect我可以确认每个节点容器和nginx容器都连接到mynet并且有一个IP。但是,在 ssh 到我的 nginx 容器后,它只能通过网络与位于同一主机上的节点应用程序通信,而不能与集群中其他主机上的节点应用程序通信。
运行docker network inspect mynet 后,只列出了我的两个容器(nginx 和一个节点实例在同一主机上),而其他两个没有列出,即使它们有名称和 IP来自docker inspect的覆盖网络。
这个想法是使用nginx reverse proxy 将任何上线的新容器添加到它的配置中,但我一直坚持让容器全部连接。根据Docker networking docs for overlay,这应该是可能的。
我做错了什么?谢谢。
编辑:
在向docker network inspect mynet 发送几次垃圾邮件后,看起来容器不断地与网络连接和断开连接,即使我已关闭所有防火墙并打开端口以进行测试。什么会导致这样的事情?
【问题讨论】:
标签: networking amazon-ec2 docker docker-swarm