我启动了一个docker容器,其服务在端口9324上运行:
docker run -d -p 9324:9324 vsouza/sqs-local
我想这个容器会运行o 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上响应?
答案 0 :(得分:2)
-p 9324:9324
告诉docker在端口9324上的主机上的容器中发布9324端口。实际的机制是使用一些iptables规则在该端口上进行伪装和dnat(用于出站和入境流量分别)。这种情况经常发生,因为您并不总是知道每个容器的IP,并且可能已将防火墙规则配置为阻止直接访问容器(您不在环境中)。