docker 容器无法到达某些主机的端口

docker container not able to reach some of host's ports

我在 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.

通信

这是为什么?

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

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

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