首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法启动守护程序:初始化网络控制器时出错:创建默认“网桥”网络时出错

无法启动守护程序:初始化网络控制器时出错:创建默认“网桥”网络时出错
EN

Stack Overflow用户
提问于 2020-12-09 17:17:40
回答 3查看 14.4K关注 0票数 33

我使用的是Fedora release 33 (Thirty Three) Docker版本是Docker version 20.10.0, build 7287ab3

首先,我运行了docker system prune,此后docker守护进程无法启动。

我运行systemctl start docker命令并得到

代码语言:javascript
运行
复制
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.

然后systemctl status docker.service我得到了

代码语言:javascript
运行
复制
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor pr>
     Active: failed (Result: exit-code) since Wed 2020-12-09 11:10:58 IST; 15s >
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
    Process: 10391 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/contai>
   Main PID: 10391 (code=exited, status=1/FAILURE)

Dec 09 11:10:58 barad-laptop systemd[1]: docker.service: Scheduled restart job,>
Dec 09 11:10:58 barad-laptop systemd[1]: Stopped Docker Application Container E>
Dec 09 11:10:58 barad-laptop systemd[1]: docker.service: Start request repeated>
Dec 09 11:10:58 barad-laptop systemd[1]: docker.service: Failed with result 'ex>
Dec 09 11:10:58 barad-laptop systemd[1]: Failed to start Docker Application Con>

然后是sudo dockerd --debug和got

代码语言:javascript
运行
复制
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

this Github issue相关

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-10 16:25:15

我发现

代码语言:javascript
运行
复制
$ firewall-cmd --get-active-zones
FedoraWorkstation
  interfaces: ens4u1u2 wlp59s0
docker
  interfaces: br-48d7d996793a
libvirt
  interfaces: virbr0
trusted
  interfaces: docker0

接口docker0似乎在受信任区域中。但还有一个叫码头的区域。

所以我决定试一试,把它添加到docker专区。

代码语言:javascript
运行
复制
$ sudo firewall-cmd --permanent --zone=docker --change-interface=docker0

之后看起来是这样的:

代码语言:javascript
运行
复制
$ firewall-cmd --get-active-zones
FedoraWorkstation
  interfaces: ens4u1u2 wlp59s0
docker
  interfaces: br-48d7d996793a docker0
libvirt
  interfaces: virbr0

看起来很管用。

也许有人能对此有更多的了解。

票数 74
EN

Stack Overflow用户

发布于 2020-12-10 16:29:14

在我的Fedora 32上升级docker-ce后,我得到了这个错误。看起来新的docker与您在答案中链接的the article中提到的手动防火墙配置冲突。我的机器上有启用容器到容器通信的规则。

恢复防火墙规则后,Docker启动成功:

代码语言:javascript
运行
复制
sudo firewall-cmd --permanent --zone=trusted --remove-interface=docker0
sudo firewall-cmd --permanent --zone=FedoraWorkstation --remove-masquerade
sudo firewall-cmd --reload
sudo systemctl restart docker

这些变化似乎不会影响容器之间相互通信的能力。

票数 21
EN

Stack Overflow用户

发布于 2021-05-14 18:30:06

对于类似的问题,我从受信任区域中删除了docker0,重新加载了防火墙,还从/etc/docker中删除了daemon.json

代码语言:javascript
运行
复制
sudo firewall-cmd --get-active-zones

sudo firewall-cmd --permanent --zone=trusted --remove-interface=docker0
sudo firewall-cmd --reload

sudo rm -rf /etc/docker/daemon.json # or mv to another location

然后使用sudo systemctl restart docker重启docker服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65213831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档