首页 > 解决方案 > 如何与来自另一个主机 Y 的主机 X 中正在运行的 Docker 容器通信(而不是来自主机 Y 中的容器)

问题描述

我正在试验 Docker 网络,我设置了一个如下场景,

将 docker 安装在通过网络连接的 host-X(host-X IP:60.0.0.28)并运行 ubuntu-OS 的基本 docker 容器(Docker 容器仅连接到默认的 docker bridge 网络,即 172.17.0.0/16 & 172.17.0.2 是容器 IP)。现在尝试从另一个主机-Y 与同一网络(主机-Y IP:60.0.0.40)中没有安装 docker 的正在运行的容器通信。

我在 host-Y 中添加了基本路由,例如 "ip route add 172.17.0.0/16 via 60.0.0.28 dev ens3" 。

从容器中,我能够 ping 主机-Y,在相反的情况下,我只能从主机-Y ping docker 网关“172.17.0.1”,但无法访问容器。

标签: dockerdocker-composedocker-swarmdocker-machine

解决方案


假设您想在主机 X 上启动 Dockerized nginx。

你会跑:

docker run --detach -p 8080:80 nginx

然后您可以使用http://60.0.0.28:8080.


推荐阅读