This error occurs when the Docker daemon cannot find the default bridge network, usually due to corrupted network database files or misconfiguration. Fix it by deleting the local-kv.db file and restarting Docker.
The "network bridge not found" error indicates that Docker's networking subsystem cannot locate or access the default bridge network. The bridge network is a core component of Docker networking that enables containers to communicate with each other and the outside world. When Docker starts, it automatically creates a default bridge network (docker0) that containers use unless you specify a different network. This error means that the bridge network metadata has become corrupted, was accidentally deleted, or Docker's internal network database is in an inconsistent state. Common scenarios that lead to this error: - Corrupted `local-kv.db` file in Docker's network directory - The docker0 network interface was manually deleted or modified - Docker daemon crashed during a network operation - System updates or kernel changes affected networking - The `daemon.json` configuration explicitly disables the bridge with `"bridge": "none"` - Cluster store connectivity issues in Docker Swarm setups
First, verify whether the bridge network is listed:
docker network lsLook for a network named "bridge" in the output. If it's missing, that confirms the problem.
You can also try to inspect it directly:
docker network inspect bridgeIf this returns "network bridge not found", proceed with the fixes below.
The most common fix is to delete Docker's network database file and restart:
# Stop Docker
sudo systemctl stop docker
# Remove the corrupted database file
sudo rm /var/lib/docker/network/files/local-kv.db
# Start Docker again
sudo systemctl start dockerDocker will recreate the local-kv.db file and the default bridge network on startup.
Note: If you can't find the file, you may need root access:
sudo su
ls -la /var/lib/docker/network/files/If the simple fix doesn't work, do a more thorough cleanup:
# Stop Docker first
sudo systemctl stop docker
# Remove the docker0 interface if it exists in a bad state
sudo ip link del docker0 2>/dev/null || true
# Remove all network state files
sudo rm -rf /var/lib/docker/network/*
# Recreate the necessary directory
sudo mkdir -p /var/lib/docker/network/files
# Start Docker
sudo systemctl start dockerDocker will reinitialize all networking components from scratch.
The bridge might be intentionally disabled in Docker's configuration:
cat /etc/docker/daemon.jsonIf you see "bridge": "none", remove that line or set it properly:
{
"bridge": "docker0"
}Or simply remove the bridge key entirely to use defaults. Then restart Docker:
sudo systemctl restart dockerIf the bridge network was deleted, you can recreate it:
docker network create bridgeHowever, this creates a user-defined bridge, not the default one. For the default bridge behavior, you typically need to restart Docker to have it recreate the true default bridge.
For containers that need immediate networking, you can use:
docker network create --driver bridge my-bridge
docker run --network my-bridge myimageClean up any orphaned resources that might be causing conflicts:
docker system prune -fThis removes stopped containers, unused networks, dangling images, and build cache. Then restart Docker:
sudo systemctl restart dockerThe default bridge uses 172.17.0.0/16. Check if another interface is using this range:
ip addr show | grep 172.17If there's a conflict, configure Docker to use a different subnet in /etc/docker/daemon.json:
{
"bip": "192.168.1.1/24"
}Then restart Docker:
sudo systemctl restart dockerAs a last resort, especially after kernel updates:
sudo rebootThis ensures all kernel modules are properly loaded and network interfaces are cleanly initialized. After reboot, verify Docker is working:
docker network ls
docker run hello-worldDocker Swarm and cluster-store issues: In Docker Swarm mode or when using an external key-value store (etcd, consul), the "bridge not found" error can occur if the cluster-store is unreachable during daemon startup. This commonly happens when the store runs as a container. Solution: start Docker without Swarm mode first, then initialize Swarm after the daemon is running.
Rootless Docker: If running rootless Docker, the network paths are different:
~/.local/share/docker/network/files/local-kv.dbWSL2 specific issues: On Windows with WSL2, the bridge network may not work properly. Try:
# In WSL2
wsl --shutdown # From PowerShell
# Then restart Docker DesktopAlso check if iptables-legacy is needed:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacyVirtualBox memory issues: Docker sometimes fails to create the bridge on VirtualBox VMs with more than 3GB RAM. The workaround is to delete local-kv.db before each Docker start, or reduce VM memory.
Checking Docker daemon logs: For detailed error information:
sudo journalctl -u docker.service -n 100 --no-pagerLook for messages about "Error initializing network controller" or "failed to allocate gateway".
Using host networking temporarily: If you need to run containers urgently while debugging:
docker run --network host myimageThis bypasses bridge networking entirely but removes network isolation.
Complete Docker reset: As a nuclear option, completely reset Docker (WARNING: deletes all data):
sudo systemctl stop docker
sudo rm -rf /var/lib/docker
sudo systemctl start dockerThis removes all images, containers, volumes, and networks, forcing Docker to start fresh.
unable to configure the Docker daemon with file /etc/docker/daemon.json
How to fix 'unable to configure the Docker daemon with file daemon.json' in Docker
docker: Error response from daemon: OCI runtime create failed: container_linux.go: starting container process caused: exec: "/docker-entrypoint.sh": stat /docker-entrypoint.sh: no such file or directory
How to fix 'exec: entrypoint.sh: no such file or directory' in Docker
image operating system "linux" cannot be used on this platform
How to fix 'image operating system linux cannot be used on this platform' in Docker
dockerfile parse error line 5: unknown instruction: RRUN
How to fix 'unknown instruction' Dockerfile parse error in Docker
manifest unknown: manifest unknown
How to fix 'manifest unknown' in Docker