我使用的是Fedora release 33 (Thirty Three)
Docker版本是Docker version 20.10.0, build 7287ab3
首先,我运行了docker system prune
,此后docker守护进程无法启动。
我运行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
和got
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
发布于 2020-12-10 16:25:15
我发现
$ firewall-cmd --get-active-zones
FedoraWorkstation
interfaces: ens4u1u2 wlp59s0
docker
interfaces: br-48d7d996793a
libvirt
interfaces: virbr0
trusted
interfaces: docker0
接口docker0似乎在受信任区域中。但还有一个叫码头的区域。
所以我决定试一试,把它添加到docker专区。
$ 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
看起来很管用。
也许有人能对此有更多的了解。
发布于 2020-12-10 16:29:14
在我的Fedora 32上升级docker-ce后,我得到了这个错误。看起来新的docker与您在答案中链接的the article中提到的手动防火墙配置冲突。我的机器上有启用容器到容器通信的规则。
恢复防火墙规则后,Docker启动成功:
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
这些变化似乎不会影响容器之间相互通信的能力。
发布于 2021-05-14 18:30:06
对于类似的问题,我从受信任区域中删除了docker0
,重新加载了防火墙,还从/etc/docker
中删除了daemon.json
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服务。
https://stackoverflow.com/questions/65213831
复制相似问题