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

人气:835 发布:2022-10-16 标签: containers docker docker-compose fedora

问题描述

我正在使用 Fedora 版本 33(33)Docker版本是Docker版本20.10.0,build 7287ab3

I'm using Fedora release 33 (Thirty Three) Docker version is Docker version 20.10.0, build 7287ab3

首先我运行了 docker system prune,然后 docker daemon 无法启动.

First I ran docker system prune and since then docker daemon failed to start.

我运行 systemctl start docker 命令得到了

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 我得到了

● 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得到

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

与 此 Github 问题

推荐答案

发现了

$ firewall-cmd --get-active-zones
FedoraWorkstation
  interfaces: ens4u1u2 wlp59s0
docker
  interfaces: br-48d7d996793a
libvirt
  interfaces: virbr0
trusted
  interfaces: docker0

接口 docker0 似乎在 trusted 区域中.但是还有另一个名为 docker 的区域.

the interface docker0 seems to be in the trusted zone. But there's another zone called docker.

所以我决定试一试并将其添加到 docker 区域.

So I decided to give it a shot and add it to the docker zone instead.

$ sudo firewall-cmd --permanent --zone=docker --change-interface=docker0

之后是这样的:

$ firewall-cmd --get-active-zones
FedoraWorkstation
  interfaces: ens4u1u2 wlp59s0
docker
  interfaces: br-48d7d996793a docker0
libvirt
  interfaces: virbr0

似乎有效.也许有人可以对此有所了解.

Seems to work. Maybe someone can shed more light on this.

204