如何访问docker内docker容器中运行的应用程序?

如何访问docker内docker容器中运行的应用程序?,docker,docker-networking,Docker,Docker Networking,我的项目中有一个奇怪的场景 我正在一个docker容器中运行“Supervisor”应用程序 使用这个主管,我在docker容器中运行两个“web应用程序”,两个都使用一个微服务;再次安装在另一个docker容器中 现在,我可以从“主管容器”访问我的应用程序。但很明显,我的机器无法访问它 如何从我的计算机访问我的应用程序“Web App1”或“Web App2” 我对docker网络的相关知识较少。 请帮忙 Docker管理“主机”和容器之间的网络流量。在本例中,不同层上有许多Docker。在每

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

我正在一个docker容器中运行“Supervisor”应用程序

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

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

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

我对docker网络的相关知识较少。 请帮忙


Docker管理“主机”和容器之间的网络流量。在本例中,不同层上有许多Docker。在每一层上,您必须将内部容器的端口暴露给下一层上的“docker主机”,以此类推

这是一个通过端口的解决方案:

因此,
172.17.42.1
上的“主管”必须将所有内部容器的端口作为其自己的端口公开。因此,对于“Supervisor”,您需要为“Supervisor”中所有容器的每个端口提供一个
-p
docker参数

公开网络:

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

另一个解决方案:


跳过主管容器,使用docker compose来安排和管理内部容器。

docker管理“主机”和容器之间的网络流量。在本例中,不同层上有许多Docker。在每一层上,您必须将内部容器的端口暴露给下一层上的“docker主机”,以此类推

这是一个通过端口的解决方案:

因此,
172.17.42.1
上的“主管”必须将所有内部容器的端口作为其自己的端口公开。因此,对于“Supervisor”,您需要为“Supervisor”中所有容器的每个端口提供一个
-p
docker参数

公开网络:

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

另一个解决方案:


跳过主管容器,使用docker compose来安排和管理内部容器。

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

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