在没有 iptables 的情况下,流量如何流向 docker 发布的端口?

在没有 iptables 的情况下,流量如何流向 docker 发布的端口?

我希望 docker 遵守 ufw 规则,所以找到了这个主题https://stackoverflow.com/questions/30383845/what-is-the-best-practice-of-docker-ufw-under-ubuntu

我做了以下事情:

设置"iptables": false为docker,

sed -i -e 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/g' /etc/default/ufw

iptables -t nat -A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE

并且它可以工作,但我不明白流量是如何到达容器的?

之前sudo iptables-save | grep 8123给我:

-A POSTROUTING -s 172.21.0.5/32 -d 172.21.0.5/32 -p tcp -m tcp --dport 8123 -j MASQUERADE
-A DOCKER ! -i br-cf80e85bf468 -p tcp -m tcp --dport 8123 -j DNAT --to-destination 172.21.0.5:8123
-A DOCKER -d 172.21.0.5/32 ! -i br-cf80e85bf468 -o br-cf80e85bf468 -p tcp -m tcp --dport 8123 -j ACCEPT

但是我禁用 iptable 后就没有规则了,流量怎么会到达 docker 8123 呢?这里 8123 docker 发布端口 0.0.0.0:8123->8123/tcp

相关内容