Introduction to Docker 
Part-1

Introduction to Docker Part-1

Which Problems docker is solving?

Before Docker :-

1. How it started?

  1. Application runs on a servers and one application runs on one server.
  2. If traffic on your server increases it will crash your server and hence for prevention we need to buy new server.
  3. Every time we want a new application we have to buy new server.
  4. To solve this problem VMware came into existence.

2.VMware

  1. IBM fixed this issue by introducing the concept of virtual machines
  2. By using virtual machines VMware solves this problem.
  3. In virtual machine we can run more than one application on single server.
  4. We can achieve this by using Hypervisor.
  5. Hypervisor is used to create multiple machines on a host operating system and it manages virtual machines.
  6. Problem with virtual machine is it require their own Operating System. 7.Second issue is that we get errors like missing modules, packages, version problems. Because of that apps are not running on one computer while works perfectly on another computer.

These problems we were facing. And these problems are solved by the Containers. Docker is an open source containerization platform.

Containers:-

Containers are packages of software that contain all of the necessary elements to run in any environment. In this way, containers virtualize the operating system and run anywhere on any system. In computing terms, containerization is an efficient method for running, deploying and scaling applications.

Screenshot 2022-07-07 184745.png

In the above image if we want to send car, oil, food, piano etc. from one country to another it is very difficult to transport separately. Hence we pack everything in the container and transport all of them easily.

Screenshot 2022-07-07 185241.png

This is what container looks like having static website, backend, database, virtual machine, all the dependencies etc.

Containers vs Virtual Machines

Screenshot 2022-07-06 234958.png

Virtual Machines:- It runs on top of an emulating software called the hypervisor which sit between the hardware and the virtual machine. The hypervisor is the key to enable virtualization. It manages the sharing of physical resources into virtual machines. Each virtual machine runs its own guest operating system.

Containers:- It sits on the top of a physical server and its host operating system. They share a common operating system. Inside the container each app encapsulates itself means no app knows what's happening outside the app.

Docker :-

Docker is a container platform that allows you to build, test and deploy applications quickly. A developer defines all the applications and it’s dependencies in a Dockerfile which is then used to build Docker images that defines a Docker container. Doing this ensures that your application will run in any environment.

How to install Docker on :-

  1. On Windows : By using Docker Desktop + WSL (Windows Subsystem for Linux).
  2. On Mac : Docker Desktop or you can use Docker Desktop inside Virtual Machine.
  3. On Linux : Can Download it as it is.

( YouTube has lots of videos on this check that out )

If any application containerized on Windows system then it wont work on Linux and mac system. And similarly to the Mac and Linux system.

Docker Architecture :-

Screenshot 2022-07-07 192547.png

Docker Daemon :-

Daemon is a engine of container. It takes request from client and work on it. It works on building, running, and distributing the containers. It also manages the Docker images and the containers.

Rest API :-

Client communicate with the engine or daemon with the help of Rest API request. It Deals with the interaction of applications with their server.

Client CLI :-

By using CLI (Command Line Interface) client makes API request to the Daemon.

Docker Image :-

File which contains all the required things to create the container is know as the Docker Image. It is similar in concept to a snapshot of a VM. Image consist of source code, operating system files to run the application along with its other dependencies. Images are immutable.

Docker Registries :-

Docker registry is similar to GitHub. Registry stores all the images. Docker Hub is a public registry that anyone can use. When you pull an image, it will search by default on public registry and stores in the system locally.

Dockerfile :-

Dockerfile is a file which contains the steps to create a images. These images can be pulled to create containers in any environment. These images can also be store online at docker hubs.

Thank you so much for taking your valuable time for reading

Part-2 will be uploaded soon. It will consist of the commands require to create the Dockerfile, images, containers etc. and much more.

Inspired by Kunal Kushwaha tutorial's on Docker hub. I tried my best to give the basic idea of docker. Hope you will get the basic idea.

Feedback is highly appreciated! Thank you !!

Did you find this article valuable?

Support Atharv Sunil Bobade by becoming a sponsor. Any amount is appreciated!