Everything you need to know about Docker

Docker, a popular containerization software

Why is Docker so popular, and why should you use it?

Today, Docker is so popular because it has enabled easy access and usage of several features that were already present in Linux kernel, but were rarely utilised when it came to application security and isolation.

Moreover, Docker has abstracted several layers of the Linux kernel and added some components on top of them that them more user friendly.

1. Definition, benefits, and use cases

What are Containers?

To understand the fundamentals of Docker, we must first understand how containers differ from Virtual Machines.

Containers were not designed as a replacement technology for virtual machines. In fact, they were designed to focus on one single application at a time, inside each and every container.

In fact, containers are a streamlined way to build, test, deploy and redeploy applications on multiple environments - from a developer’s local laptop to an on-premises data center and even to the cloud.

Find out what are containers and what are their benefits here.

2. Why are Containers used?

Container technology with Docker

Containers are integral to applications you use every day.

A Docker Container is meant to provide a standardized software environment for running apps, which will behave in the same way wherever it is deployed.

Containers, therefore, bring the following benefits to DevOps:

1. Standardization
2. Portability
3. Speed
4. Ease of distribution
5. Ease of management at scale

Read more about container technology with Docker.

3. Why use Containers vs. VMs?

Containers vs. Virtual Machines (VMs): Differences you should know

First of all, let’s define the similarities and differences between Docker and Virtual Machines.

As you might know, virtual machines contain entire operating systems, apps and files and run on top of a hypervisor that allocates virtual resources (CPU, RAM, etc.) to them from the physical infrastructure that hosts it. A virtual machine can therefore be managed as a standalone server.

Conversely, containers do not encapsulate an operating system (OS) – instead, they run on a single operating system, directly from the physical infrastructure, and rely on kernel level mechanisms from that OS to ensure app and resource compartmentalization and security.

Read more about the difference between containers and virtual machines (VMs), here.

4. How Docker Images work?

Understanding Docker Images and the Layered Filesystems

Find out how to create Docker images for deploying your code and assembling container-based services.

A Docker image is just a minimal set of files on your disk. It includes code, some libraries, some dependencies, everything that you require to run a very specific application.

Moreover, Docker images have layers (just like onions!) and each layer usually adds more content to the image and builds upon the previous one. All these layers in an image are read-only in order to preserve the integrity of the base image.

Find out more about Docker images and  the Layered Filesystems.

5. The role of Docker and...

How Docker fits into the DevOps Ecosystem

Docker perfectly fits the DevOps ecosystem, providing DevOps professionals with tools to accelerate and streamline the software development lifecycle.

DevOps as a movement aims to bring together two traditionally completely separate types of teams: the developers who write the applications and the operations people.

Developers now need to understand how a cloud infrastructure works, so that they can package their applications in a more compatible manner. Also, on the other hand, operations teams need to understand that they are not simply providing the infrastructure, but that their task is now to run real code, real applications, that they should be aware of.

Read more about the role of Docker and how it fits into the DevOps ecosystem, here