docker仅在主机上公开端口

时间:2015-03-26 18:38:23

标签: networking docker port

抱歉我的愚蠢问题。我正在使用docker,我尝试将端口暴露给localhost。 我正在使用以下命令行:

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)。

由于

2 个答案:

答案 0 :(得分:1)

你在哪里运行wget?您只绑定到主机上的localhost接口,因此您只能从主机本身访问容器。如果在0.0.0.0:8080:8081命令中使用docker run,它是否有效? IIRC 0.0.0.0是默认值,因此8080:8081也应该有效。

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

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

答案 1 :(得分:0)

访问这样的码头工具是一个问题。 您可以尝试使用它来测试服务器:

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

那将在docker图像中进行本地wget。

可以从节点外部访问该docker,也可以从内部访问。 只是没有从通用网络接口到docker网络的路由。