Docker Introduction — Part I

Rana Aurangzaib
3 min readAug 3, 2021

You are a developer, and you want to start with Docker?

You are at the right place to start with Docker. This is the first session of Docker, we will start with the Docker introduction, and after that, we will dive into containerize our first application with Docker.

Photo by Sevim Oz on MoreThanShipping

What is Docker?

Docker is free software developed by Docker Inc. It was introduced to the general public on March 13, 2013, and has become a must in IT development since that day.

It enables users to create autonomous and isolated environments to launch and deploy their applications. These environments are then called containers.

Docker also helps you to take away repetitive, mundane configuration tasks. Use throughout the development lifecycle for fast, easy, and portable application development.

Going back in time

Traditional deployment era:

For example, if multiple applications run on a physical server, there can be instances where one application would take up most of the resources, and as a result, the other applications would underperform. A solution for this would be to run each application on a different physical server. But this did not scale as resources were underutilized, and it was expensive for organizations to maintain many physical servers.

Virtualized deployment era:

As a solution, virtualization was introduced. It allows you to run multiple Virtual Machines (VMs) on a single physical server’s CPU. Virtualization allows applications to be isolated between VMs and provides a level of security as the information of one application cannot be freely accessed by another application.

Container deployment era:

Containers are similar to VMs, but they have relaxed isolation properties to share the Operating System (OS) among the applications. Therefore, containers are considered lightweight. Similar to a VM, a container has its filesystem, CPU, memory, process space, and more. As they are decoupled from the underlying infrastructure, they are portable across clouds and OS distributions.

Why use Docker as a developer?

Photo from geekfromgeek

This tool can change a developer’s daily life. To best answer this question, I have written a list of the benefits:

  • Docker is fast. Unlike a virtual machine, your application can start in a few seconds and stop just as quickly.
  • Docker is multi-platform. You can launch your container on any system.
  • Containers can be built and destroyed faster than a virtual machine.
  • You keep your workspace clean, as each of your environments will be isolated and, you can delete them at any time without impacting the rest.
  • It will be easier to deploy your project on your server to put it online.

--

--

Rana Aurangzaib

Backend Engineer @ Brave Software | Python | Data Engineer | Big Data | Data pipeline | Deep Learning | DevOps | Apache Beam | Apache Kafka