【发布时间】:2016-01-27 21:04:55
【问题描述】:
我在 OSX 上使用 Docker,并创建了一个具有桥接网络的主机和几个共享虚拟 IP 的容器(因此 172.19.0.50 指向 172.19.0.1,如果该容器出现故障,则指向 172.19.0.50在 172.19.0.2 等等)。此网络中的其他容器可以访问 172.19.0.50 并按计划查看其中任何一个框,到目前为止一切都很好。
我很困惑的是如何将我的公共 192.168.99.100 IP 指向 172.19.0.50 而不是特定的容器 IP。
这是一个我不太熟悉的领域,因此非常感谢任何建议。
【问题讨论】:
-
我不确定我是否理解您的问题,但我认为您需要将 docker 主机的 IP 与 IP 为 172.19.0.50 的容器映射
-
令人困惑的是哪些网络在哪里。你能解释一下 VirtuaBox 中的哪些网络,哪些是虚拟机,哪些是容器?查看用于创建容器和 Docker 网络的命令也会有所帮助。
-
谢谢各位。现在这是一个相当复杂的集合,其中有许多使用 PGPool HA 和 Postgres HA 的容器 - 我试图在上面进行简化以解决问题的核心,但没有做得很好:-( @HemersonVarela 你在说什么听起来很接近到我想做的事情。如果我登录到其中一个容器,我可以访问 .50,但我无法从主机访问它。
-
docker run上的 -p 标志告诉 Docker 将容器内任何需要的网络端口映射到主机。 -
我正在使用撰写。如果在“端口”部分的 yml 中我做了 ip:port 会产生相同的效果,即使映射到虚拟 ip 而不是 docker 分配的容器 ip?如果我在容器中执行 ifconfig,它确实有 docker 分配的 ip 和虚拟 ip。我使用的命令是
docker-compose -p MyCustomNetwork --x-networking up。谢谢。