Get startedGet started for free

Introduction to containerization

1. Introduction to containerization

As we learned earlier, there are different levels of virtualization. In addition to virtualizing an entire computer, we can also virtualize certain computer components. Let's learn about virtualization at the operating system level, also known as containerization!

2. Environments in computing

Since we will be using the term "environment" a lot throughout this course, let's get our definitions straight! In this course, "environment" refers to the system that surrounds an IT application, including the operating system (or short: OS), hardware, software, and other resources.

3. OS-level virtualization

OS-level virtualization involves virtualizing the operating system itself, rather than the entire computer. This means that we don't virtualize the underlying hardware or the OS kernel, which is the core component that facilitates communication between software and hardware. Instead, we create virtualized, isolated user spaces that interact with the host's non-virtualized OS kernel. These user spaces are dynamic areas where user-level applications operate, and the OS kernel allocates hardware resources to them as needed.

4. Introducing containers

As briefly mentioned previously, OS-level virtualization is also called containerization because the isolated user spaces are also known as containers. Containers provide an isolated environment in which to run an application. It contains everything needed for the application to run smoothly, such as the source code, dependencies, and configurations.

5. Definition of containerization

So the definition of containerization is twofold: First, containerization is virtualization at the operating system level. Second, containerization is the process of packaging an application and its dependencies into a container with its own environment managed by the OS kernel.

6. Characteristics when using containers

Let's consider the characteristics of containers! Containers allow multiple applications to run reliably on a single host operating system without requiring a dedicated operating system for each application. Each application is packaged in its own container, which means that each application has its own environment and does not interfere with the dependencies of another application. Developing applications in containers also makes it easy to keep track of which dependencies are needed for an application and which are not.

7. Benefits of containers

When comparing application development in containers to physical machines, containers offer the following advantages: First, they provide isolation, meaning they do not interfere with other processes running on the same host machine. For example, if one application crashes, it won't affect others running in separate containers on the same host. Second, containers are highly portable and reproducible. Because they contain everything needed for the application, they're easy to move and behave identically when run on different host machines. Finally, containers have fast startup times. Unlike applications running on physical machines, containers don't need to load an entire operating system. This is critical for highly available applications or deployments that need to scale quickly.

8. Let's practice!

Now it's your turn to test your understanding of containerization with the following exercises!

Create Your Free Account

or

By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.