1

我的项目中有一个奇怪的场景。

我在一个 docker 容器中运行“主管”应用程序。

使用这个主管,我在 docker 容器中运行两个“Web 应用程序”,并且都使用一个微服务;再次安装在另一个 docker 容器中。

现在,我可以从“主管的容器”访问我的应用程序。但显然我的机器无法访问它。

如何从我的机器访问我的应用程序“Web App1”或“Web App2”?

我对docker网络的了解较少。请帮忙。

在此处输入图像描述

4

2 回答 2

0

Docker 管理“主机”和容器之间的网络流量。在这种情况下,您在不同的层上有许多泊坞窗。在每一层上,您必须将内部容器的端口暴露给下一层的“docker host”,依此类推。

这是端口的解决方案:

所以上面的“Supervisor”172.17.42.1必须将所有内部容器的端口暴露(172.17.0.2-4)为自己的端口。因此,对于“主管”,您需要为“主管”-p内所有容器的每个端口提供一个 docker 参数。

公开网络:

配置本地机器以将任何网络数据包发送172.17.*.*172.17.42.1. 然后配置172.17.42.1将 IP 的网络包发送172.17.0.*到其网络适配器Docker0(默认 docker 网络适配器)。确切的实现取决于您的发行版。

另一种解决方案:

跳过您的主管容器并用于docker-compose安排和管理您的内部容器。

于 2015-07-09T12:01:08.903 回答
0

您可以将 Web App1 和 Web App2 的端口映射到主机容器,并使用 IP 地址和端口从您的计算机访问这些容器。更好的方法是为您的容器添加主机名并映射端口,这样您就不必记住 IP 地址,因为它们是在每次重新创建容器时随机生成的。

于 2015-07-09T22:20:57.127 回答