Certain versions of Connman (which sucks) will allow Docker to create default routes of their VETH devices, which normally just bridge between the docker container and docker bridge. This kills host network connectivity as soon as Docker starts up.
Thanks to this thread, the solution is simple.
sudo nano /etc/connman/main.conf
uncomment the NetworkInterfaceBlacklist line and add veth to the list. It should look like
NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb,ve-,vb-,veth
Restart computer, all should be good.
p.s. Connman sucks.