Docker.service 主进程已退出,代码=已退出,状态=1/FAILURE(操作系统:ubuntu 22.04)

问题描述 投票:0回答:1
sudo systemctl status docker
× docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Mon 2024-05-06 18:25:25 UTC; 6min ago
TriggeredBy: × docker.socket
       Docs: https://docs.docker.com
    Process: 1632897 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
   Main PID: 1632897 (code=exited, status=1/FAILURE)

May 06 18:25:22 server systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
May 06 18:25:22 server systemd[1]: docker.service: Failed with result 'exit-code'.
May 06 18:25:22 server systemd[1]: Failed to start Docker Application Container Engine.
May 06 18:25:25 server systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
May 06 18:25:25 server systemd[1]: Stopped Docker Application Container Engine.
May 06 18:25:25 server systemd[1]: docker.service: Start request repeated too quickly.
May 06 18:25:25 server systemd[1]: docker.service: Failed with result 'exit-code'.
May 06 18:25:25 server systemd[1]: Failed to start Docker Application Container Engine.

May 06 18:25:22 server systemd[1]: Starting Docker Application Container Engine...
░░ Subject: A start job for unit docker.service has begun execution
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit docker.service has begun execution.
░░
░░ The job identifier is 3281362.
May 06 18:25:22 server dockerd[1632897]: time="2024-05-06T18:25:22.186308133Z" level=info msg="Starting up"
May 06 18:25:22 server dockerd[1632897]: time="2024-05-06T18:25:22.190370332Z" level=info msg="detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf"
May 06 18:25:22 server dockerd[1632897]: time="2024-05-06T18:25:22.292233833Z" level=info msg="[graphdriver] using prior storage driver: overlay2"
May 06 18:25:22 server dockerd[1632897]: time="2024-05-06T18:25:22.292729359Z" level=info msg="Loading containers: start."
May 06 18:25:22 server dockerd[1632897]: time="2024-05-06T18:25:22.884221906Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
May 06 18:25:22 server dockerd[1632897]: failed to start daemon: Error initializing network controller: error creating default "bridge" network: Failed to Setup IP tables: Unable to enable NAT rule:  (iptables failed: iptables --wait -t nat -I POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUER>
May 06 18:25:22 server dockerd[1632897]:  (exit status 4))
May 06 18:25:22 server systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ An ExecStart= process belonging to unit docker.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
May 06 18:25:22 server systemd[1]: docker.service: Failed with result 'exit-code'.

我不是那个很快放弃的人,但是天哪,天哪,发生了什么事?我已经设法查明问题与 iptables 有关,但在完全搞砸了我的防火墙之后,我仍然不知道发生了什么。我刷新了 iptables 并尝试重新启动 docker - 没有帮助。然后我重新安装了 ip 表并再次尝试 - 没有帮助。我尝试在网上查找找不到任何解决问题的方法,甚至尝试了 GPT 有人可以提供一些帮助吗?

还尝试了这个:systemctl start docker - docker.service 的作业失败,因为控制进程退出并显示错误代码

sudo iptables --wait -t nat -I POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUER
iptables v1.8.7 (nf_tables): Chain 'MASQUER' does not exist
Try `iptables -h' or 'iptables --help' for more information

难道是我正在运行的OVPN服务器?

docker ubuntu-22.04
1个回答
0
投票

解决方案: 所有功劳都归功于这位天才https://stackoverflow.com/a/76215040/21229427

docker 安装程序使用 iptables 进行 NAT。不幸的是 Debian 使用 nftables。您可以将条目转换为 nftables 或仅设置 Debian 以使用旧版 iptables。

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
sudo systemctl restart docker

所以问题出在使用 iptables-legacy 的 iptables 和 debian 发行版上。所以你需要更新legacy才能启动docker。不是开玩笑,这花了整整 4 个小时)

© www.soinside.com 2019 - 2024. All rights reserved.