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命令然而,为什么,我无法findnexus服务器。

我有检查,所有端口都打开(iptables)。

谢谢

你在哪里运行wget? 您只绑定到主机上的本地主机接口,因此您只能从主机本身访问容器。 如果在docker run命令中使用0.0.0.0:8080:8081 ,它是否工作? IIRC 0.0.0.0是默认的,所以只需要8080:8081也可以。

如果您不想让本地networking以外的任何人访问该端口,请使用您的本地IP地址,通过运行ifconfig可以find该IP地址。 例如,我在本地networking上的IP是192.168.1.103,所以我会这样做:

 docker run -d -p 192.168.1.103:8080:8081 --name nexus sonatype/nexus 

这是一个访问docker这样的问题。 你可以试试这个testing服务器:

 docker exec -it nexus wget http://nexus:8080/ 

这将在Docker镜像中执行一个本地wget。

该泊坞窗可以从您的节点外部访问,也可以从内部访问。 只是没有从通用networking接口到泊坞窗口的路由。