我更新了系统上的 docker。此后,当我运行 docker 命令时,出现错误“无法联系 docker 守护进程”。
运行systemctl status docker
显示 Docker 守护程序启动失败。检查 systemd 日志journalctl -xe
显示以下错误:
ERROR: ZONE_CONFLICT: 'docker0' already bound to a zone
答案1
以 root 身份执行:
firewall-cmd --permanent --zone=trusted --remove-interface=docker0
firewall-cmd --reload
systemctl restart docker
来源 :https://docs.docker.com/network/iptables/#integration-with-firewalld
如果您在系统上运行的是 Docker 20.10.0 或更高版本,并且
--iptables
启用了防火墙,Docker 会自动创建一个firewalld
名为的区域docker
,并将其创建的所有网络接口(例如docker0
)插入到 docker 区域,以实现无缝联网。考虑运行以下
firewalld
命令从区域中删除 docker 接口。请替换适当的区域和docker接口
firewall-cmd --zone=trusted --remove-interface=docker0 --permanent firewall-cmd --reload
重新启动 dockerd 守护进程将接口插入到 docker 区域。