By now, virtually everyone who works in IT has heard about containers, the lightweight virtualization technology that forms one pillar of cloud-native computing.
Yet, unless you've spent a long time working with container technology, it can be easy to make false assumptions about what they can do, and how they are similar to or different from other types of technology, such as virtual machines.
To clear up the confusion, here's a look at seven common myths about software containers, and why subscribing to these myths may lead to poor decision-making when setting up cloud-native environments.
Myth 1: Docker Invented Container Technology
Docker, which became an open source platform in 2013, was the first containerization framework to gain widespread adoption.
But it was hardly the first container technology. On the contrary, containers date back decades. Docker was preceded by technologies like LXC (on which Docker was once based) and BSD "jails," which also provided a way to run applications in quasi-isolated, software-defined environments.
So, Docker didn't invent containers. It just made them popular, largely by creating tooling that made it easier to work with containers.
Myth 2: Containers Are Much Faster Than VMs
Ask most people why they should use containers, and the answer will likely be that containers are faster than VMs because they don't waste resources on hypervisor overhead and guest operating systems.
It's true that containers are more efficient. However, the difference in performance between containers and VMs is smaller than you might think. It's a mere 2%, on average, according to VMware (although the details vary widely depending on which types of workloads you are dealing with).
So, if you think containers massively outperform VMs, think again.
Myth 3: Kubernetes Is an Alternative to Docker
People sometimes treat Kubernetes and Docker as either-or propositions. They think that either you use Docker or you use Kubernetes.
In reality, Docker and Kubernetes are different things. Kubernetes is an orchestration technology, whereas Docker at its core is a way to run containers.
To be fair, comparing Kubernetes to Docker can get confusing because Docker also provides its own orchestration tooling, called Swarm. But that's only one part of Docker (and it's not the most important part). You can use Docker to run containers at the same time you use Kubernetes to orchestrate them.
Myth 4: Containers Are Only for Linux
Most of the development effort surrounding containers has focused on Linux. You also need Linux for certain types of container-related workloads; for example, Kubernetes master nodes can run only on Linux servers.
However, containers can also run on Windows. Indeed, you can even set up a Kubernetes cluster that includes both Linux and Windows nodes at the same time, allowing you to run Windows and Linux apps side-by-side using a central management plane.
Myth 5: Containers Run in the Cloud
To the extent that people confuse containers with being a cloud-only technology, it's probably due to the fact that the term "cloud-native" (which is closely associated with containers) is confusing.
Cloud-native is sometimes interpreted to refer to technologies that only work in the cloud. But not all cloud-native environments are cloud-based. You can deploy containers or Kubernetes on-premises, too. There's nothing stopping you from using containers if you don't want to use the cloud.
Myth 6: Containers Are Hard to Manage
In the earlier days of container adoption, it was difficult to deploy and monitor containers. Managing things like persistent storage was also challenging.
Today, however, this is no longer the case. The tooling surrounding containers has matured a lot over the past four or five years, and the barriers to entry don't exist anymore.
So, while it was once fair to say that working with containers was objectively harder than working with VMs, that's just not true as of 2022.
Myth 7: Everyone Understands Containers
The fact that container tooling has grown simpler, however, doesn't mean that every engineer out there is familiar with containerized software stacks or management tools — although it can seem that way, given how much attention containers and Kubernetes receive these days.
If you're still wrapping your head around how containers actually work, you're not alone. Container technology isn't new at this point, but not everyone has been knee-deep in Docker and Kubernetes for the past decade. Indeed, there's a shortage of skills surrounding modern, cloud-native environments.
To get the most from containers, avoid misassumptions — like the ideas that containers are much faster than VMs, that they run only on Linux, or that if you haven't mastered the ins and outs of container technology, you're an outlier.
About the authorChristopher Tozzi is a technology analyst with subject matter expertise in cloud computing, application development, open source software, virtualization, containers and more. He also lectures at a major university in the Albany, New York, area. His book, “For Fun and Profit: A History of the Free and Open Source Software Revolution,” was published by MIT Press.