Docker が起動しなくなった時の解決方法です。
動作の確認
active (running) になっているかを確認
sudo systemctl status docker
sudo systemctl status docker.socket
エラーの状況
docker0 がないことを確認
$ ip link show docker0
Device "docker0" does not exist.
手動で dockerd を起動すると、docker0 が既にあるというメッセージが出る
$ sudo dockerd
INFO[2025-04-10T14:06:11.384937037+09:00] Starting up
INFO[2025-04-10T14:06:11.387971388+09:00] OTEL tracing is not configured, using no-op tracer provider
INFO[2025-04-10T14:06:11.388194895+09:00] detected 127.0.0.53 nameserver, assuming systemd-resolved, so using resolv.conf: /run/systemd/resolve/resolv.conf
INFO[2025-04-10T14:06:11.408688154+09:00] Creating a containerd client address=/run/containerd/containerd.sock timeout=1m0s
INFO[2025-04-10T14:06:11.442628049+09:00] [graphdriver] using prior storage driver: overlay2
INFO[2025-04-10T14:06:11.445333957+09:00] Loading containers: start.
INFO[2025-04-10T14:06:12.328491338+09:00] stopping event stream following graceful shutdown error="<nil>" module=libcontainerd namespace=moby
failed to start daemon: Error initializing network controller:
error creating default "bridge" network: cannot create network a8e02b8c3293330093318a136255a51566a7bb5d3ba805d47faf6814cc093fdc
(docker0): conflicts with network c083e14ddfaa0aa30d6f81bc2e2ab1823195c68604099f7258c30b775b923d8a
(docker0): networks have same bridge name
停止
sudo systemctl stop docker
sudo systemctl stop containerd
不正になった設定の削除
sudo rm -rf /var/lib/docker/network
起動
sudo systemctl start containerd
sudo systemctl start docker
状態の確認
docker network ls
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
8c0ee0e247e5 bridge bridge local
4470a25be900 host host local
b28b76bae120 none null local