无法启动docker守护程序:Firewalld:docker区域已存在



运行firewall-cmd --get-active-zones后,我有以下内容

public
interfaces: virbr0 docker0 lxcbr0 wlan0
trusted
sources: 172.17.0.0/16 53.0.0.0/8

这些是我从启动守护进程失败中得到的见解:初始化网络控制器时出错:创建默认值时出错;"桥";网络

问题是,sudo dockerd失败,并显示错误消息,其中有

failed to start daemon: Error initializing network controller: Error creating default "bridge" network: Failed to program NAT chain: ZONE_CONFLICT: 'docker0' already bound to a zone

如何操作区域以便启动docker守护进程?

编辑:这个解决方案对我有效:

sudo firewall-cmd --permanent --new-zone=docker 
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=docker --add-interface=docker0

这是有效的(完成所有步骤(:

  1. 检查防火墙cmd中是否存在docker区域
$ firewall-cmd --get-active-zones
  1. 如果"码头工人";区域可用,将接口更改为docker0(未持久化(
$ sudo firewall-cmd --zone=docker --change-interface=docker0
  1. 如果"码头工人";区域可用,将接口更改为docker0(持久化,感谢rbjorklin(
$ sudo firewall-cmd --permanent --zone=docker --change-interface=docker0
$ sudo systemctl restart firewalld

信用:https://gist.github.com/reytech-dev/1cbbb158df374018be454537de32a428

最好在答案@Ilonpilaaja中提及该解决方案。这些命令也适用于我:

sudo firewall-cmd --permanent --new-zone=docker 
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=docker --add-interface=docker0

最新更新