DEV Community

Discussion on: 10 Myths About Docker That Stop Developers Cold

Collapse
 
ekdikeo profile image
Eric B

I would like to call out some problems that I currently have with Docker for Windows, which I hope will be fixed in the future, because they truly make it unusable for a lot of situations at the current time.

Docker can mess up Windows networking. Something about the Virtual Switch that it installs in Hyper-V can completely trash your networking implementation on the machine that is running it, preventing any services that run on the bare metal from working -- it will automatically forward all incoming connections to the Virtual Machine that runs all the dockers. This means that neither the host machine, nor any of the docker containers, can work correctly.

So far, the only solution that I've found to this, is to load up the Hyper-V manager, after all my containers are up and running, and set the Virtual Switch to run on the External network. This gets all the networking running correctly. However, doing so, also prevents me from starting up any new containers that have volumes mounted, because it needs drive sharing to work.. and the drive sharing doesn't work on localhost with the virtual switch set to External network. SO, if I need to restart or run any new containers, I have to switch the Hyper-V switch back to Internal network, restart or run the new containers, and then once they are started switch it back to External network.

Docker for Windows can be a serious pain in the ass, because of that. This does not happen on all my machines, but it does happen on the two machines that I actually need to use Docker on personally. This is a really nasty problem, and so far, I've been unable to find any specific solutions.

I can configure a new Docker machine, and use that as the default, which uses an External switch network by default. However, that still doesn't solve the problem that the Internal switch is re-created every time Docker starts, which breaks all the networking on device.