We are launching a course on Docker and containers, a technology that has gone from being a “trend” to becoming a software development standard.
Throughout this series, we will see what they are, how they work, and of course, we will see a lot of commands and practical examples.
But before we start typing like crazy, the million-dollar question when talking about containers. The question we all asked ourselves at some point: what the heck is Docker for? 👇

“Docker” is the commercial name that has become popular to refer to container technology.
In this course, we will talk about containers in general, including alternatives like Podman or containerd.
The Problem of Having Everything Together
To understand Docker, you first have to remember the headache we had before it existed (and that, if you don’t use Docker, you probably still have).
Imagine you want to try a new technology. Let’s say, a self-hosted web application, or an MQTT broker for your IoT projects. To make it work, downloading the code is not enough.
You have to set up a whole mess of dependencies:
- Install a specific web server.
- Install Node.js (pray it’s the correct version).
- Configure a MariaDB database.
- Create users, permissions, environment variables…
- … and tweak five configuration files while doing voodoo so nothing fails.

As you install more things on your computer, libraries start fighting with each other. The database version your Project A needs is incompatible with Project B’s. You update a global library and suddenly, nothing works.
And to top it off: when you want to uninstall something. You have to play Russian roulette deleting files, with the constant fear of leaving residual “junk” (much worse) or breaking something from another project.
Docker to the Rescue
This is where Docker comes in to save our lives. Its philosophy directly attacks that problem:
Docker solves the chaos by packaging the software.
Instead of installing things “loose” and messy in your operating system, Docker uses containers.
A container is a closed package that includes “everything an application needs” to work (code, libraries, configuration, dependencies…)
Think of it as a sealed “box” or a tupperware. What happens inside the container, stays in the container. It doesn’t dirty your main operating system or fight with other applications.
Why Should You Use It?
The main advantage is portability. If an application works on my computer inside a Docker container, it will work exactly the same on your server, on your Raspberry Pi, or in the cloud.
But in addition, Docker gives us:
Cleanliness
You can spin up a complex database in seconds, use it, and delete it without leaving a trace on your system.
Speed
Unlike a Virtual Machine (which takes minutes to boot), a container boots in milliseconds.
Community
On Docker Hub you have thousands of ready-to-use images. Want WordPress? docker run. A Minecraft server? docker run. No complex installations.
What Exactly is Docker?
Docker didn’t invent containers (Linux already had LXC long before). What Docker did was create a friendly and standardized tool to use them.
Docker is an open platform for developing, shipping, and running applications. It allows us to separate our applications from our infrastructure.
When we talk about “Docker”, we generally refer to:
- Docker Engine: The program that runs on your computer and does the dirty work.
- Docker Images: They are the “templates” or molds for our applications. They are read-only.
- Docker Containers: They are the live instances of those images. It’s what we run.
Is Docker Free?
This is a question we don’t always ask and we should, because Docker’s licenses have changed over the years. Let’s clarify. Docker has two main editions:
- Docker Community Edition (CE): Free and Open Source. This is the one we will use in the course and the one installed on Linux servers.
- Docker Desktop: It’s the application with a graphical interface for Windows and Mac. It’s free for personal use, education, and small businesses.
If you work in a company with more than 250 employees or large revenues, Docker Desktop requires a paid subscription.
Although the Docker engine itself (the technology) remains free.
