1

我使用在端口 9324 上运行的服务启动了一个 docker 容器:

docker run -d -p 9324:9324 vsouza/sqs-local

我想这个容器将在 bridge0 网络上运行。所以如果我运行: docker network inspect bridge,我可以看到这个容器在 ip: 上"IPv4Address": "172.17.0.2/16"

该服务在两个 ip 上都有响应:172.17.0.2:9324 和 127.0.0.1:9324。

为什么此服务在 127.0.0.1 上响应?

4

1 回答 1

2

-p 9324:9324告诉 docker 在端口 9324 上的主机上发布容器中的 9324 端口。其实际机制是使用一些 iptables 规则在该端口上进行伪装和 dnat(分别用于出站和入站流量)。这经常发生,因为您并不总是知道每个容器的 ip,并且可能将防火墙规则配置为阻止对容器的直接访问(您的环境中没有)。

于 2016-06-11T20:02:56.693 回答