Docker Community Forums

Share and learn in the Docker community.

[Archlinux] Container veth interfaces being assigned to wrong bridge

I have a qemu VM setup on my workstation, configured to get its own IP on the VLAN using a bridge interface. The bridge is created/configured using systemd-networkd. Ever since setting up that VM, containers without --net=host are unable to reach the Internet (or anything else for that matter, including the host IP).

The only thing I can find that seems at least on the surface to be wrong is that the containers’ veth interfaces are being assigned to br0 instead of docker0. I’ve tried explicitly setting "bridge": "docker0" in /etc/docker/daemon.json to no avail. With debug logging enabled, dockerd (and containerd) don’t mention anything about which bridge they’re using:

Apr 10 15:49:21 mc-desktop dockerd[115739]: time="2021-04-10T15:49:21.175291373-04:00" level=debug msg="Releasing addresses for endpoint gallant_wright's interface on network bridge"
Apr 10 15:49:24 mc-desktop dockerd[115739]: time="2021-04-10T15:49:24.148188013-04:00" level=debug msg="Assigning addresses for endpoint loving_carson's interface on network bridge"

And, amusingly enough, if I try to reassign the veth interface manually, it gets reassigned immediately:

[mc@mc-desktop ~]$ brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.18c04d85a0da	no		enp6s0
							veth4a970f5
docker0		8000.024208f354b5	no		

[mc@mc-desktop ~]$ sudo brctl delif br0 veth4a970f5; sudo brctl addif docker0 veth4a970f5; brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.18c04d85a0da	no		enp6s0
docker0		8000.024208f354b5	no		veth4a970f5

[mc@mc-desktop ~]$ brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.18c04d85a0da	no		enp6s0
							veth4a970f5
docker0		8000.024208f354b5	no		

Any tips for troubleshooting would be super appreciated!