All backend or web developers probably hear the terms “Docker” and “containers” quite frequently. What do these terms mean? Before we get into what Docker is, let's try to understand containerization.

Containerization

So what do we mean by containerization? To understand that, let's first look into why it's needed in the first place.

What did we do before containerization?

Before containerization, in order to run an application on a machine, we had to make sure the machine had all the necessary software. This meant installing the language that the program uses along with all dependencies.

As you can guess, this was a cumbersome process. Apps would fail on some systems and not others because of a missing configuration, and debugging was a nightmare. Autoscaling and running multiple instances of an app exacerbated this problem further. Virtualization, i.e., using virtual machines (VMs), helped to some extent but still required manual setup.

The software world needed a uniform, quick, and easy way to deploy applications that would scale seamlessly. And this led to the creation of containerization.

What is containerization?

Containerization is the process of packaging the source code of the app along with all its dependencies, configuration files, and libraries into a neat little “container.” We can think of a this as the app running in isolation but sharing the same OS as other containers. Let's dive deep into it to get a better understanding.

Anatomy of containerization

Create a free account to view this lesson.

By signing up, you agree to Educative's Terms of Service and Privacy Policy