【问题标题】:docker container not able to reach some of host's portsdocker 容器无法到达某些主机的端口
【发布时间】:2023-01-31 04:05:08
【问题描述】:

我有一个在 VM 上运行的带有 docker-compose 的堆栈。

这是我的 netstat -tulpn 在 VM 上的示例输出

Proto Recv-Q Send-Q   Local Address             Foreign Address         State      
tcp        0      0   0.0.0.0:9839              0.0.0.0:*               LISTEN     
tcp        0      0   127.0.0.1:8484            0.0.0.0:*               LISTEN   

docker 能够与端口9839(使用172.17.0.1)通信,但不能与端口8484 通信。

这是为什么?

【问题讨论】:

    标签: docker networking netstat


    【解决方案1】:

    这是因为侦听端口 8484 的程序绑定到 127.0.0.1,这意味着它只接受来自本地主机的连接。

    监听 9839 的那个绑定到 0.0.0.0 意味着它将接受来自任何地方的连接。

    要使监听 8484 的人接受来自任何地方的连接,您需要更改它绑定的内容。如果这是您自己编写的内容,则可以在代码中进行更改。如果不是,则可能有您可以设置的配置设置。

    【讨论】:

    • 另一个重要的细节是来自容器的连接可能来自 172.17.0.1 上的 docker0 接口;它不是来自“来自本地主机”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    相关资源
    最近更新 更多