12 Things I Wish I Knew About Docker

When learning Docker, there are a lot of subtle details you can miss. But knowing them can be really helpful. I often had full-fledged “aha” moments. After stumbling upon a small snippet of information suddenly things started to make much more sense all of a sudden.

I like to think them as puzzle pieces, which help you figure out what the whole image is supposed to look like and provide you with an overview. Unfortunately, they can feel trivial if you’ve been working with Docker for a while already. But if you don’t happen to know them, they can make all the difference for your learning journey.

Here are 12 things I wish I learned a lot earlier about Docker and containers in general:

  • Containers are about portability and resource utilization.
  • Containers were not designed as a security containment mechanism from the start, and it shows.
  • Containers don’t exist as a first-class object - Linux namespaces and cgroups work together to create “containers”.
  • Multiple processes can run in the same “container”, this only means the processes share the same namespaces and cgroup.
  • Docker is just one tool of many which you can use to work with containers.
  • Docker works three main jobs: packaging apps into images, distributing images and running containers from images.
  • Image layers exist to reuse work, transfer less data and save bandwidth.
  • Docker is easy to get started with, but the images are too permissive and not correct by default.
  • Lots of people use containers badly, and don’t even know it.
  • It’s okay to use docker-compose for production workloads running on a single machine.
  • Container orchestration, security and building good images take effort and experience. They are complex topics by themselves.
  • Sometimes it’s okay to not-use Docker even though you could.

I hope those snippets will help you get a better picture of Docker! They can be hard to find out on your own. Either you gather them while sifting through dozens of online blog posts or you learn them from people who have been using Docker for a while.

If you’d like to read a more thorough list, drop your email address below, and I’ll send you the first chapter of my upcoming book - “Things I Wish I Knew About Docker”, with more useful facts I wish I had learned about earlier in my career.