gpt4 book ai didi

docker - 如何从 w10 pc 访问带有网络主机的 docker 容器?

转载 作者:行者123 更新时间:2023-12-02 19:09:50 24 4
gpt4 key购买 nike

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

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

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

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

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

我在 Windows 10 pro 上运行 docker。 (注意:docker 1.12.5,更新到 1.12.6 不知何故崩溃)

最佳答案

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

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

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

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

docker network create myapp

然后,告诉每个容器使用该网络。
docker run --network myapp <other options...>

关于docker - 如何从 w10 pc 访问带有网络主机的 docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41616751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com