When Docker was first released, there was a lot of talk about Docker versus virtual machines. I remember reading articles in magazines, commenting on threads on Reddit, and reading endless blog posts. In the early days of the Docker alpha and beta versions, people used to approach Docker containers like virtual machines, because there weren't really any other points of reference, and we viewed them as tiny VMs.
In the past, I would enable SSH, run multiple processes in containers, and even create my container images by launching a container and running the commands to install my software stack. This is something that we discussed in Chapter 2, Building Container Images; you should never do it, as it is considered a bad practice.
So, rather than discussing containers versus virtual machines, let's look at some of the considerations that you need...