firewalld防火墙开启后无法启动docker的问题

centos7中 firewalld与docker冲突的问题:

原因:

firewall的底层是使用iptables进行数据过滤,建立在iptables之上,而docker使用iptables来进行网络隔离和管理,这可能会与 Docker 产生冲突。当 firewalld 启动或者重启的时候,将会从 iptables 中移除 DOCKER 的规则,从而影响了 Docker 的正常工作。

也就是说,firewalld和docker都在操作iptables的规则,但是docker和firewalld发生了冲突,导致docker和firewall的设置的不一致,所以出现了问题。
 

解决方法:

让Docker 绕过了 firewalld 

我们让docker不修改 iptables 就可以解决问题了:

##修改docker配置
vim /etc/docker/daemon.json

# 添加规则
{
...
"experimental" : true,
"iptables": false
}

# 重启 docker
systemctl daemon-reload
systemctl restart docker

# 启动容器
docker run -d -p 80:80 nginx
# 查看iptables规则 发现 docker 没有添加规则
iptables --list

猜你喜欢

转载自blog.csdn.net/weixin_42599091/article/details/130158157