Skip to content
Xavi Creus

Cloud & infrastructure

Containers (Docker)

Containers package an application with everything it needs to run so it behaves identically on any machine; Docker is the tool that made them mainstream.

Definition

Containers are a way of packaging software together with all its dependencies, such as libraries, settings and runtime, into a single standard unit that runs the same way on a developer's laptop, a test server and the production cloud. Docker is the tool that made containers easy and popular from 2013 onwards. Compared with a virtual machine, a container is far lighter: it shares the host operating system and starts in seconds instead of minutes.

In a company, containers are the reason the phrase "it works on my machine" has largely disappeared from engineering conversations. Each service ships as a container image, the same image moves through testing and into production, and rolling back means running the previous image. Containers are also the unit that Kubernetes and most cloud platforms deploy and scale, so they are the default packaging for backend software. Most CI/CD pipelines build a container as their output.

A misconception is that containers are a security boundary as strong as separate machines. They are not; a container shares the kernel with its host, and isolation must be designed, not assumed. Another is that using Docker means you need Kubernetes. Many companies run containers happily on simpler managed services for years. In 2026 containers are simply the standard way to ship software, including the AI models and agents that companies run internally.

In practice

A team took a week per new developer to set up a working environment. After packaging the application as containers, a new hire ran one command and had the entire system, including databases and background jobs, running locally in 10 minutes.

Why it matters

Containers make your software portable, which is leverage: you can change cloud providers, scale a service or roll back a bad release without heroics. If your engineering team is not using them, ask why.

Frequently asked questions

What is the difference between a container and a virtual machine?
A virtual machine emulates an entire computer, including its own operating system, so it is heavy and slow to start. A container shares the host operating system and packages only the application and its dependencies, so it is small, starts in seconds and many can run on one machine. Containers are more efficient; virtual machines offer stronger isolation.
Do I need Docker for a small project?
Not strictly, but it pays off early. Packaging a project as a container from day one makes it easy to run on any machine, to hand to a new developer and to deploy on most cloud platforms. The setup cost is an afternoon and it prevents a class of problems that get expensive later.

Need this explained for your company?

One hour with me is usually enough to turn the vocabulary into a decision.

Book a session