I have an Ubuntu 18.04 LTS server with an existing bridge that I use for both KVM/QEMU VMs and OpenVPN. It’s defined in /etc/netplan as follows:
network: ethernets: enp6s0: addresses:  dhcp4: true optional: true version: 2 bridges: br0: interfaces: [enp6s0] dhcp4: true parameters: stp: false forward-delay: 0
I’ve followed steps from various sources to try to get docker-ce to use this bridge so that each docker container has its own IP address but to no avail. The setup I did was almost identical to this post. I edited the “/etc/systemd/system/docker.service.d/override.conf” file to contain the following:
[Service] ExecStart= ExecStart=/usr/bin/docker daemon -H fd:// --bridge=br0 --fixed-cidr=192.168.1.0/27 --default-gateway=192.168.1.254
I then reloaded the daemon and restarted the service:
sudo systemctl daemon-reload sudo systemctl restart docker
I’ve tried various permutations of daemon parameters but basically any time I try to specify either “–bridge=” or “–bip=”, the service just hangs while starting. The last line printed to the syslog is:
Starting Docker Application Container Engine...
I tried enabling debug logging using the instructions here but it doesn’t print anything else after this line. Because there doesn’t seem to be any other logging available I have no idea why the daemon won’t start. Removing the custom bridge from the parameters makes it start fine with the default docker0 bridge.