【发布时间】:2016-10-09 18:25:40
【问题描述】:
我有一个在 Centos 主机上运行的 docker 容器,并且有一个主机端口:容器端口映射。 docker 容器正在运行一个 Web 应用程序。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a2f8ce62bb69 image1 "/bin/bash" 16 hours ago Up 16 hours 22/tcp, 0.0.0.0:7001->7001/tcp nostalgic_elion
我可以通过映射的主机 IP 地址和主机端口通过 http 访问应用程序。但是,如果我将主机 IP 替换为容器 IP,则会收到一条错误消息,提示“无法访问站点”ERR_CONNECTION_TIMED_OUT。
是否可以使用容器 IP 和通过 http 公开的端口进行访问?不幸的是,我没有太多的网络背景。
【问题讨论】:
-
如果您访问您的主机 IP:7001,它会将您重定向到您的容器 IP:7001。您只能从您的 centos 主机内部访问容器 IP(内部 ip)。 curl 容器-ip:7001
-
它没有重定向到容器 IP。问题不在于访问容器中运行的应用程序。但我想使用容器的 IP 访问应用程序。这不可能吗?
-
容器的 IP (172...) 是一个无法从外部访问的 IP。因此,如果您有一个带有浏览器的 centos 用户界面,则可以访问它:172.xx:7001。但是,当您使用没有 UI 的真实服务器时,您必须使用服务器的公共 ip:7001 才能从不在您的 centos 服务器内的浏览器访问您的应用程序
标签: networking docker ip centos6