查看网络
配置Docker
1 2 3 4
| vim /etc/default/docker
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 -iptables=false"
|
1 2 3 4 5
| vim /etc/docker/daemon.json { "iptables": false }
|
重启docker服务
1 2 3
| service docker start service docker stop service docker restart
|
编辑 ufw 默认规则链
1 2 3 4
| vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
|
net为当前网桥的名称,可通过ifconfig查看,10.10.13.0/24为网桥的子网段:
1 2
| docker network inspect docker_compose_net | grep Subnet "Subnet": "10.10.13.0/24",
|
1 2 3 4 5 6 7 8 9 10 11 12
| vim /etc/ufw/before.rules
*nat :POSTROUTING ACCEPT [0:0]
-A POSTROUTING ! -o docker0 -s 10.10.13.0/24 -j MASQUERADE -A POSTROUTING ! -o docker0 -s 10.10.14.0/24 -j MASQUERADE
COMMIT
|
重启一下 ufw 规则
1 2 3 4 5
| sudo ufw disable sudo ufw enable
sudo systemctl restart ufw
|
测试
1 2 3
| sudo ufw deny 9200
sudo ufw allow 9200
|
问题处理
1,docker内容器无法访问其他容器的端口
1 2 3 4 5
| ufw allow from 172.17.0.1/24
ufw reload
|
2,使用ufw放开docker内的端口访问不生效
1 2 3 4 5
| ufw allow 端口号
ufw route allow 端口号
|
参考:
无视系统防火墙的docker
解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题
Ubuntu防火墙ufw对Docker容器端口的策略问题处理
docker and ufw serious problems
关于docker自动开放端口解决方案