
Why is this a revolution?
DockerPreviously, the most common solution for isolating applications was to use virtual machines.
The principle is simple: instead of having a single operating system on a server, you run several at the same time. Each application can thus be installed in its own virtual machine with its own system.
On paper, this seems like a good solution. Each application is isolated, and the environments are separate. In fact, this technology is still widely used today in many infrastructures.
But virtual machines have a major drawback: they are resource-intensive.
Each virtual machine contains a full operating system. This means it includes its own kernel, system services, libraries, and everything else needed to run an OS. Even for a small application, this means we end up running several complete systems on the same server.
The result: this consumes a lot of resources and takes time to boot up.
Docker takes a very different approach.
Instead of creating multiple operating systems,Docker simply launches isolated containers that share the host system’s kernel. Each container contains only what is necessary to run the application.
So you don’t load a full system—just the application and its dependencies.
The difference is huge.
A containerDocker can start up in a few seconds, sometimes even in a fraction of a second. It also consumes much less memory and disk space than a virtual machine.
To revisit the maritime transport analogy used in the previous lesson, you can imagine that virtual machines are like entire trucks, each carrying a single cargo. Each truck has its own engine, cab, and full set of equipment.
Docker Containers, on the other hand, function more like containers loaded onto the same ship. The ship is shared, but each container remains independent.
It is this approach that makesDocker particularly effective for deploying modern applications. You can quickly launch many containers, delete them just as easily, and recreate an identical environment in a matter of seconds.
This doesn’t mean that virtual machines have disappeared. They remain very useful for isolating entire systems or for running different operating systems on the same infrastructure.
But for deploying applications and services, containersDocker now offer a much lighter, faster, and more flexible solution.
This is whyDocker has established itself as a central tool in modern environments, particularly in cloud architectures and DevOps practices.