Schema in drei Schritten: Links eine Textdatei namens Dockerfile mit Bauanleitung, in der Mitte ein daraus erzeugtes Image als unveränderliche Vorlage, rechts mehrere gleichzeitig laufende Container, die alle aus diesem einen Image gestartet wurden. Darunter ein Vergleich: Container teilen sich einen gemeinsamen Systemkern des Wirtsrechners, während eine virtuelle Maschine jeweils ein komplettes eigenes Betriebssystem mitbringt.

Docker

Docker is a program that packages software together with everything it needs to run into a self-contained package. This package runs identically on any computer – whether on a developer's laptop or on a server in a data center.

A program rarely runs alone. It usually needs additional helper programs, certain settings, and often a very specific version of these. If one of these parts is missing on another computer, the program crashes or behaves strangely. Docker solves this problem by putting the program and all these ingredients into a single self-contained package. Such a package is called a container. Whoever starts the container gets the same environment everywhere – on their own laptop just as on a rented server on the internet.

The end of “But it works on my machine”

Before Docker, one phrase in software development was proverbial: “It works on my machine.” A developer wrote a program, it ran flawlessly for them, and everything broke down on the company’s server. The reason was tiny differences: a different version of an additional library, a different operating system, a missing setting. Troubleshooting often took days. With containers, this difference largely disappears because the environment is delivered along with the software.

The second reason for Docker’s importance is the size of modern systems. An online shop today does not consist of a single program, but of dozens of small services: search, shopping cart, payment, recommendations. Each service runs in its own container. If suddenly many customers search at the same time, one simply starts twenty more search containers. The other services remain untouched.

Docker is also standard in the AI world. A model often needs exactly matching drivers for the graphics card and exactly matching libraries. Setting up this combination by hand costs hours. Downloaded as a container, it runs within minutes.

Image, container, and the difference from a virtual machine

At the beginning there is a text file with build instructions, the Dockerfile. It states, line by line, what belongs in the package: which base system, which additional programs, which own program code. Docker processes these instructions and creates an image from them. An image is the finished, unchangeable template – comparable to a baking recipe that has already become a finished cake, but is still sitting in the freezer.

If you start an image, a running container is created from it. From one image, you can start as many containers as you like, simultaneously. Each one is isolated from the others and sees only its own small world of files and processes. If you stop a container, all changes within it are normally gone. Data that should survive is therefore deliberately stored outside of it.

Docker is often confused with a virtual machine. A virtual machine simulates a complete second computer including its own operating system and requires a lot of memory and startup time for this. Containers, on the other hand, share the host computer’s system kernel and only package the layer above it. That’s why a container starts in a fraction of a second instead of minutes and is often only a few hundred megabytes in size.

Docker in cloud services and developer teams

Anyone using a phone or a browser sees nothing of Docker. Nevertheless, a large part of the services used daily runs in containers – from streaming services to online banking to chatbots. Large providers such as Amazon Web Services, Microsoft Azure, or Google Cloud usually require software in exactly this form.

Ready-made images can be found in public collections, above all Docker Hub. There, official packages for databases, web servers, or AI tools are available for download. A single command is enough, and the software runs. On the Hugging Face platform, AI applications are also distributed as containers.

In job listings and business news, the term often appears together with Kubernetes. Kubernetes is a tool that manages, distributes, and restarts thousands of containers across many servers in the event of failures. Docker builds and starts the individual containers, Kubernetes directs the entire fleet. Together, both form the backbone of the modern cloud.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.