如何从w10 pc到达网络主机的docker容器?

时间:2017-01-12 15:18:24

标签: docker windows-10

我正在开发一个大型架构,分成几个部分。

每个部分都使用服务(例如:redis)和其他项目。

我设置了一个环境,我可以在Docker容器中使用适当的端口映射运行我需要的所有服务,这样重复的服务就不会发生冲突。

现在,如果我直接在我的电脑上运行自己的架构,这一切都很好。但现在我也在/作为docker容器(准备生产)运行我的架构,并试图在我的系统中运行它们。首先,他们无法到达已经设置的容器(服务)。我通过运行我自己的架构docker容器--network host来解决这个问题。

现在我的所有容器都运行良好,但是当我转到http://localhost:80(其中一个容器在端口80上运行)时,我似乎无法联系到它们。其他端口上的其他容器也无法以这种方式访问​​。我做错什么了吗?有没有办法接触他们?

我正在Windows 10专业版上运行docker。 (注意:docker 1.12.5,以某种方式更新到1.12.6崩溃)

1 个答案:

答案 0 :(得分:2)

使用--network host只需将主机的网络接口连接到容器中。它不一定允许端口流量通过系统防火墙。

如果绑定容器端口,例如使用-p <host_port>:<container_port>运行容器,Docker应相应地调整防火墙规则并使其全部工作。 (当容器停止时,它也应该自行清理。)

或者,您可以使用Docker覆盖网络,在这种情况下通常是建议的解决方案。

首先,为您的应用程序创建一个网络。

docker network create myapp

然后,告诉每个容器使用该网络。

docker run --network myapp <other options...>