docs: correct ZONE_CONFLICT fix — delete NM docker0 profile, set unmanaged

Root cause was a leftover NetworkManager docker0 bridge connection binding the
interface to the default zone (firewalld removal alone didn't hold).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Josh Bairstow 2026-06-03 00:17:15 +10:00
parent 75bfd3a516
commit d326670b1f

View file

@ -170,12 +170,19 @@ sudo snap stop --disable docker.dockerd # if a crashing snap docker is pres
sudo systemctl enable --now docker.service # classic engine, on at boot
docker info | head # verify as your user, no sudo
```
Fedora gotcha: if `dockerd` then fails with
`ZONE_CONFLICT: 'docker0' already bound to 'FedoraWorkstation'` (a stale binding,
often left by a prior snap-docker), free the interface and retry:
Fedora gotcha: if `dockerd` fails with
`ZONE_CONFLICT: 'docker0' already bound to 'FedoraWorkstation'`, the cause is a
leftover **NetworkManager** bridge profile for `docker0` (no zone set → lands in
the default zone), which firewalld then re-applies. Delete it, stop NM managing
Docker's bridges (so it can't recur at boot), and start Docker:
```sh
sudo firewall-cmd --permanent --zone=FedoraWorkstation --remove-interface=docker0
sudo firewall-cmd --reload && sudo ip link delete docker0 2>/dev/null
sudo nmcli connection delete docker0
sudo tee /etc/NetworkManager/conf.d/docker-unmanaged.conf >/dev/null <<'EOF'
[keyfile]
unmanaged-devices=interface-name:docker0;interface-name:br-*
EOF
sudo systemctl reload NetworkManager
sudo ip link delete docker0 2>/dev/null
sudo systemctl reset-failed docker.service && sudo systemctl start docker.service
```