我使用 ufw 来管理防火墙。但是 Docker 直接修改了 itpables 规则。我尝试进行一些测试,看看"iptables": false
在 /etc/docker/daemon.json 中设置的效果如何,但似乎一旦启动 Docker,iptables 规则就会设置并且不会消失:
$ cat /etc/docker/daemon.json
{
"iptables": false
}
$ sudo systemctl stop containerd docker.service docker.socket
$ sudo iptables -L | grep -i docker
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
DOCKER all -- anywhere anywhere
Chain DOCKER (1 references)
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
Chain DOCKER-USER (1 references)
我很快发现 iptables 没有 systemd 单元,因此我尝试以几种不同的方式重新启动 ufw,但我猜由于 Docker 绕过了 ufw,所以它没有任何效果。
我猜重新启动计算机就可以解决问题,但这正是我想要避免的,因为我想进行一些涉及多次启用和禁用 Docker iptables 集成的测试,并且我不想每次都重新启动。