DEV Community

10 Myths About Docker That Stop Developers Cold

Derick Bailey on February 10, 2017

I was discussing the growth of Docker and I kept hearing bits of information that didn't quite seem right in my mind. “Docker is just inherently ...
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.

Collapse
 
aghost7 profile image
Jonathan Boudreau

Personally I found that Docker for Mac is completely unusable if you're trying to mount (using volumes) your code into the container (git status was taking 4s~). I instead opted to use Vagrant with an NFS file share where I run docker from. At home I only use Linux though; only ran into issues at work.

I currently develop entirely from containers and use it to share my Neovim and tmux setup across all my machines.

Collapse
 
poison_dv profile image
David Virtser

Nice article!

You can add Portainer as another cross platform alternative for Docker management UI.

Also using of docker compose when you have more than one service make environment specific adjustments easier without creating specific Dockerfile for each environment.

Collapse
 
bgannin01 profile image
Brian Ganninger

Myth 5 corollary: while Docker (core, UI) is supported on all host systems currently it's only able to run Linux and Windows containers, Mac is still off the table 😢 It may end up that Linux Swift against the standard library is the only viable option for macOS code building in Docker.

Collapse
 
wingliu0 profile image
wingliu

Myth #11: I want to use docker, but docker hub is expensive..
any free alternative to docker hub?

Collapse
 
_nicovillanueva profile image
Nico

I assume you want to host your private code, because Dockerhub is actually free (for public images, of course)
If you have a VM somewhere (say, AWS) you can run your own Registry (Dockerhub is essentially a Registry): docs.docker.com/registry/deploying/
If you are attempting to use it for production, I'd suggest implementing SSL with Let's Encrypt from the get-go. Also, for management, I still have to try out Portus: port.us.org/ (ACL, namespaces, storage management, etc.) It seems pretty cool, for a free alternative to Docker's enterprise offering.

Collapse
 
codejanovic profile image
Codejanovic

how about gitlab or amazon ECR?

Collapse
 
sutikshna profile image
Anand

Thanks you! Best docker resource I come across!

Collapse
 
kar358 profile image
kar358

I'm starting docker for Windows in August of 2020 and it's STILL a pain in the ass. Even when copy-pasting from up-to-date tutorials, every other command gives me some special new error to google.

Collapse
 
veliki_zli_krax profile image
Краљ Шуме

Daily blue screen of death DRIVER_CORRUPTED_EXPOOL with Docker on Win10. I don't even care, it's just a crap I have to use.

Collapse
 
ekdikeo profile image
Eric B

... that sounds like you actually have some hardware that has a crappy driver.