Docker) is very popular software to build Linux container images and running software in them. I don't like it.

Podman is a re-implementation of the concept, command line interface, and file formats that is very close to identical to Docker. I don't like that either.

I know I'm in the minority about this, and that's OK. I'm not trying to get anyone else to stop using it, but I avoid it myself. This blog post rant is a summary of why.

  • Merely installing Docker on a machine has broken its network configuration, more than once. I now refuse to install it at all, except in a virtual machine for that purpose. I don't know why things broke, and I'm not interested in finding out why, as I don't want to use the software in any case.

  • The command line interface is really badly designed. It's ugly, hard to learn, difficult to remember, illogical, inconsistent, and just makes no sense to me at all.

  • The design of the language in Dockerfile is ad hoc in a bad way. It's difficult to understand, for me, and easy to make mistakes.

  • The documentation for Docker and its file formats is difficult for me to find things in. I find the documentation to be generally unhelpful, and this includes both the awful, badly formatted, non-idiomatic manual pages, and the maze of web pages published by the Docker company.

  • The Docker Hub, where people publish container images they've built, has a problem with malware, and licensing of the software in the containers. I don't want to have to be super-duper careful when using containers to avoid installing stuff that causes problems. I'm spoiled by decades of Debian use, and I want to trust my sources of software.

  • The state of the Docker Hub and its images also tells me the Docker company doesn't take any responsibility to avoid causing or spreading harm to others.

  • The images that I tell the Docker software to download or build are stored in a hidden location in my home directory. The directory can easily grow to tens of gigabytes with minor use of Docker. That was another nasty surprise. I can configure the location, but first I need to realize I need to.

Podman is nearly identical to Docker, from a user point of view. It's implementation is a little less likely to break things on my machines, but it's otherwise exactly as unpleasant and inconvenient to use as Docker is. I avoid Podman as well.

I've used systemd-nspawn fairly extensively to run things in containers. It's a much simpler container system than Docker, and I do not find it objectionable. I built a CI engine on top of it. But I don't use it either, any more.

I prefer to use virtual machines. They're slower to set up, and start up a little slower too, but they're convenient for me, and I understand them well. They also behave more like a real Linux system running on bare metal hardware than containers do. There are fewer limitations that get in my way.

This blog post is not a request for you try to explain Docker, Podman, or containers to me, or for you to tell me how I can learn more about them. I am not interested.