当前位置: 首页 > 面试题库 >

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

甘祺
2023-03-14
问题内容

我目前使用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几次后,即使我关闭了所有防火墙并打开了端口以进行测试,容器似乎仍在不断地与网络连接和断开连接。是什么原因引起的呢?


问题答案:

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

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



 类似资料:
  • (编辑)我想将GKE吊舱连接到Atlas。 我有一个Atlas db,带有一个连接到GCP专有网络的专有网络对等连接。我正在尝试运用我在这些图坦卡门中学到的东西: 配置VPC网络对等互连 控制对专有网络的访问 当我查看VPC网络对等互连时 但是,可以预见的是,结果是一样的。 从gcloud shell我做: 并获得: 在GKE中,我创建了一个具有计算网络管理员角色的服务帐户,但不确定如何将其链接到

  • 我对log4j2比较陌生。当前,我有以下配置文件: 如果我通过静态记录器在这两个类Consoleain和ClientMain中记录一些东西 而且 他们总是使用根记录器的附加器和级别。如果根记录器的级别是“错误”,那么它永远不会显示任何调试级别的日志输出,即使单个记录器的级别是调试。而且,它总是追加到根记录器中指定的日志文件,而不是类的记录器中指定的日志文件。 所以,根记录器似乎以某种方式覆盖了所有

  • 我正在尝试在这里制作一个应用程序,它将检测WiFi网络中连接的所有设备。我已经做了足够多的谷歌,并提出了一个应用程序,可以检测在应用程序的WiFi网络中连接的设备的IP地址。 现在我想要更多的东西。 < li >我能否找到设备名称,即电话名称或型号或系统名称,以及我们可以用来检测特定设备的任何信息? < li >我们能否找到设备距离,例如该设备距离我们使用应用的手机有多远? < li >这是主要任

  • 问题内容: 我正在尝试制作一些docker容器来存放我的一些日常工具。但是我的许多工具都依赖于能够连接到设备(通过wifi)以提取数据。 我一直在做研究,但很困惑,想了解要支持这种情况需要做什么。我知道通常docker容器是服务器而不是客户端。但是我读过关于人们做相反的事情。 我正在尝试找出进行此操作所需的更改/配置类型。 问题答案: 默认情况下,Docker将在您的物理服务器上创建一个虚拟网络。

  • 如果没有网络连接,我可以在Emacs中打开lein repl连接或苹果酒插孔吗?需要lein repl的计算机在一些网络后面,这些网络阻止了一些IP,使其无法连接到(lein?)服务器,也不能使用vpn绕过此问题。那么有没有办法在没有网络连接的情况下启动lein repl呢?谢啦

  • 我正在编写一个批处理程序,用于将所有比目标更新的文件从“C:\User\ADMIN\Desktop”复制到“D:\Backup”。 本规范适用于: 但是,它要求每个现有的目标文件: 我想在没有用户干预的情况下覆盖所有现有的目标文件。 我该如何解决这个问题?