docker 仅在主机上公开端口
docker expose ports only on host
抱歉我的愚蠢问题。我正在使用 docker 并尝试将端口公开给本地主机。
我正在使用以下命令行:
docker run -d -p 127.0.0.1:8080:8081 --name nexus sonatype/nexus
我正在执行以下命令:
wget nexus:8080
--2015-03-26 19:31:58-- http://nexus:8080/
Résolution de nexus (nexus)... 127.0.53.53
Connexion vers nexus (nexus)|127.0.53.53|:8080...échec: Connexion refusée.
我的 ping 命令有问题,但是为什么,我找不到 nexus 服务器。
我已检查并且所有端口都在 (iptables) 上打开。
谢谢
你运行 wget 来自哪里?您只绑定到主机上的 localhost 接口,因此您只能从主机本身访问容器。如果在 docker run
命令中使用 0.0.0.0:8080:8081
是否有效? IIRC 0.0.0.0 是默认值,因此 8080:8081
也应该有效。
如果您不想让本地网络以外的任何人都可以访问该端口,请使用您的本地 IP 地址,您可以通过 运行 ifconfig
找到该地址。比如我在本地网络的IP是192.168.1.103,那么我会这样做:
docker run -d -p 192.168.1.103:8080:8081 --name nexus sonatype/nexus
像这样访问 docker 是个问题。
您可以试试这个来测试服务器:
docker exec -it nexus wget http://nexus:8080/
这将在 docker 图像内执行本地 wget。
docker 可以从您的节点外部和内部访问。
只是没有从您的通用网络接口到 docker 的路由。
抱歉我的愚蠢问题。我正在使用 docker 并尝试将端口公开给本地主机。 我正在使用以下命令行:
docker run -d -p 127.0.0.1:8080:8081 --name nexus sonatype/nexus
我正在执行以下命令:
wget nexus:8080
--2015-03-26 19:31:58-- http://nexus:8080/
Résolution de nexus (nexus)... 127.0.53.53
Connexion vers nexus (nexus)|127.0.53.53|:8080...échec: Connexion refusée.
我的 ping 命令有问题,但是为什么,我找不到 nexus 服务器。
我已检查并且所有端口都在 (iptables) 上打开。
谢谢
你运行 wget 来自哪里?您只绑定到主机上的 localhost 接口,因此您只能从主机本身访问容器。如果在 docker run
命令中使用 0.0.0.0:8080:8081
是否有效? IIRC 0.0.0.0 是默认值,因此 8080:8081
也应该有效。
如果您不想让本地网络以外的任何人都可以访问该端口,请使用您的本地 IP 地址,您可以通过 运行 ifconfig
找到该地址。比如我在本地网络的IP是192.168.1.103,那么我会这样做:
docker run -d -p 192.168.1.103:8080:8081 --name nexus sonatype/nexus
像这样访问 docker 是个问题。 您可以试试这个来测试服务器:
docker exec -it nexus wget http://nexus:8080/
这将在 docker 图像内执行本地 wget。
docker 可以从您的节点外部和内部访问。 只是没有从您的通用网络接口到 docker 的路由。