提问人:VKH 提问时间:11/15/2023 更新时间:11/16/2023 访问量:49
如何允许子网中的 docker 容器在子网外部进行通信
How to allow docker containers in a subnet to communicate outside the subnet
问:
我有一个运行 RHEL 8 VM 的 Windows 主机,该 VM 运行多个 Docker 容器。我创建了 Docker 网络,并为每个容器分配了静态 IP。VM 可以访问每个容器终结点。但是,Windows 主机和外部任何内容都不能。是否可以创建一个子网,允许外部应用程序与容器进行通信?
这些容器中的每一个都充当路由设备,以从外部应用程序接收数据。外部应用需要能够将数据发送到与容器对应的 IP。
注意:目前不使用 docker-compose
答:
0赞
Moziii
11/16/2023
#1
下面是在 Windows 主机上的 Rhel 8 VM 中为 Docker 容器设置子网的分步步骤,以允许外部应用程序与这些容器通信:
- 在 Docker 中设置桥接网络以连接所有容器。
- 确保每个 Docker 容器在网桥网络中分配了一个静态 IP。
- 在 Rhel VM 上配置端口转发,以将流量从 VM 重定向到 Docker 容器。
- 调整 Windows 主机网络设置以允许流向 Rhel VM 的流量。
- 在 Windows 主机和 Rhel VM 上设置转发规则,以允许外部应用程序访问 Docker 容器。
0赞
Chris Becke
11/16/2023
#2
docker 中的外部连接由发布端口端口进行管理。
是的,可以从主机操作系统访问具有静态 IP 的容器。这不是预期的功能,这是桥接网络的实现细节。
如果您坚持使用此详细信息,请注意,它仅适用于 docker 引擎安装,Docker Desktop 不会帮助将容器从 Moby vm 公开到主机。因为它实际上并不是 Docker 的一个功能。
评论
NAT
Bridged network