【问题标题】:docker expose ports only on hostdocker 仅在主机上公开端口
【发布时间】:2015-03-26 18:38:23
【问题描述】:

抱歉我的愚蠢问题。我正在使用 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)上打开。

谢谢

【问题讨论】:

    标签: networking docker port


    【解决方案1】:

    您从哪里运行 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
    

    【讨论】:

      【解决方案2】:

      像这样访问 docker 是个问题。 你可以试试这个来测试服务器:

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

      这将在 docker 映像中执行本地 wget。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-26
        • 1970-01-01
        • 2021-01-29
        • 2021-11-16
        • 2020-05-23
        • 1970-01-01
        • 2020-08-26
        • 1970-01-01
        相关资源
        最近更新 更多