Failed to start docker.service
Fedora Linux 42
SYMPTOMS
After a release upgrade 40 -> 42, the docker.service cannot start.
~]$ sudo systemctl status docker.service × docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled) Drop-In: /usr/lib/systemd/system/service.d └─10-timeout-abort.conf, 50-keep-warm.conf Active: failed (Result: exit-code) since Thu 2025-07-17 14:42:21 CST; 6min ago Invocation: 165514ad6ecd43188ab3f809baf5da6d TriggeredBy: × docker.socket Docs: https://docs.docker.com Process: 3225 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE) Main PID: 3225 (code=exited, status=1/FAILURE)
Jul 17 14:42:21 fedora systemd[1]: docker.service: Scheduled restart job, restart counter is at 3. Jul 17 14:42:21 fedora systemd[1]: docker.service: Start request repeated too quickly. Jul 17 14:42:21 fedora systemd[1]: docker.service: Failed with result 'exit-code'. Jul 17 14:42:21 fedora systemd[1]: Failed to start docker.service - Docker Application Container Engine.
~]$ sudo dockerd INFO[2025-07-17T14:51:01.982219089+08:00] Starting up INFO[2025-07-17T14:51:01.984550084+08:00] parsed scheme: "unix" module=grpc INFO[2025-07-17T14:51:01.984597592+08:00] scheme "unix" not registered, fallback to default scheme module=grpc INFO[2025-07-17T14:51:01.984698589+08:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>} module=grpc INFO[2025-07-17T14:51:01.984801464+08:00] ClientConn switching balancer to "pick_first" module=grpc INFO[2025-07-17T14:51:01.986993035+08:00] parsed scheme: "unix" module=grpc INFO[2025-07-17T14:51:01.987109784+08:00] scheme "unix" not registered, fallback to default scheme module=grpc INFO[2025-07-17T14:51:01.987243177+08:00] ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>} module=grpc INFO[2025-07-17T14:51:01.987380310+08:00] ClientConn switching balancer to "pick_first" module=grpc INFO[2025-07-17T14:51:02.091944870+08:00] [graphdriver] using prior storage driver: overlay2 INFO[2025-07-17T14:51:02.124069707+08:00] Loading containers: start. WARN[2025-07-17T14:51:02.177626913+08:00] Failed to find iptables: exec: "iptables": executable file not found in $PATH INFO[2025-07-17T14:51:02.184162676+08:00] Firewalld: docker zone already exists, returning INFO[2025-07-17T14:51:02.228117134+08:00] stopping event stream following graceful shutdown error="<nil>" module=libcontainerd namespace=moby failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: COMMAND_FAILED: INVALID_IPV: 'ipv4' is not a valid backend or is unavailable
|
CAUSE
The docker0 briage network lost and iptables command not found.
~]$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever 3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:50:56:a9:5a:de brd ff:ff:ff:ff:ff:ff altname enp11s0 altname enx005056a95ade inet 192.168.3.189/24 brd 192.168.3.255 scope global dynamic noprefixroute ens192 valid_lft 42036sec preferred_lft 42036sec inet6 fe80::dca4:4d14:c8a4:7880/64 scope link noprefixroute valid_lft forever preferred_lft forever
~]$ iptables -bash: iptables: command not found
|
SOLUTION
- Create a briage network
docker0
~]$ sudo dnf install bridge-utils ~]$ sudo brctl addbr docker0 ~]$ sudo ip addr add 172.17.0.1/16 dev docker0 ~]$ sudo ip link set dev docker0 up
|
- Enable the ip forwarding.
~]$ sudo vi /etc/sysctl.conf ~]$ sudo sysctl -p net.ipv4.ip_forward = 1
|
- Link the iptables command.
~]$ sudo ln -s /usr/sbin/iptables-nft /usr/sbin/iptables ~]$ sudo ln -s /usr/sbin/ip6tables-nft /usr/sbin/ip6tables
|
- Reboot the system.