Please enable Javascript for better experience...
An Overview of Docker - What is Docker?
By Keshav Khatore | May 19, 2020 | In Articles | Update: May 20, 2020 | Total Views [ 176 ]
Taged In
(0 Like)

What Is Docker?

A Docker container is an open-source software development platform. Its fundamental advantage is to bundle applications in containers, permitting them to be compact to any framework running a Linux or Windows working framework (OS). A Windows machine can run Linux containers to utilizing a virtual machine (VM). Container innovation has been around for some time, yet energy and publicity around Docker's way to deal with compartments have pushed this way to deal with the front line. While it is a significant player in the compartment field, Docker is just one type of container innovation.

History of Docker

Docker tagged along in March 2013, when the code, developed by Solomon Hykes, was released as open-source. The organization that supports and develops Docker code is evidently known as Docker. The organization got $40 million in investment financing from Sequoia Capital in September of 2014. The platform comprises of Docker Engine, a runtime, and programming packaging tools, and Docker Hub, an Both the Docker open-source container and the organization's methodology are engaging, particularly for cloud applications and general development. This is halfway in light of the fact that a holder just has the absolute minimum programming required to run an application, making it a proficient way to deal with running applications. The organization's methodology additionally accelerates application improvement and testing. Development is quicker on the grounds that various groups can work simultaneously on little pieces of an application that are in various holders. Testing is diverse in light of the fact that holders can be utilized as sandboxes to test administrations without influencing a bigger framework. The lightweight idea of holders implies the methodology can likewise improve the convenience of uses. Containers are a proficient and quick approach to move bits of programming around in the cloud.

Architecture of Docker

Docker utilizes client-server architecture. The Docker customer converses with the Docker daemon, which does the hard work of building, running, and dispersing your Docker holders. The Docker customer and daemon can run on a similar framework, or you can associate a Docker customer to a remote Docker daemon. The Docker customer and daemon impart utilizing a REST API, over UNIX attachments, or a system interface.

Fig. 1 Docker Architecture

1. The Docker daemon

The Docker daemon (dockerd) tunes in for Docker API requests and manages Docker objects such as pictures, containers, networks and volumes. A daemon can likewise communicate with different daemons to manage Docker services. 

2. The Docker client

The Docker client (docker) is the essential way that numerous Docker clients collaborate with Docker. At the point when you use orders, for example, Docker run, the customer sends these orders to dockerd, which completes them. The Docker order utilizes the Docker API. The Docker client can communicate with more than one daemon.

3. Docker registries

A Docker registry stores Docker images. Docker Hub is a public registry that anybody can utilize, and Docker is configured to search for images on Docker Hub default. You can even run your own private registry. On the off chance that you use Docker Datacenter (DDC), it incorporates Docker Trusted Registry (DTR). When you use the Docker pull or Docker run commands, the necessary pictures are pulled from your configured registry. When you use the Docker push command, your image is pushed to your configured registry.

4. Docker objects

When you use Docker, you are creating and using images, containers, networks, volumes, plugins, and other objects. This section is a brief overview of some of those objects. Rest API: It is used to instruct Docker daemon what to do.


An image is a read-only template with instructions for creating a Docker container. Often, an image is based on another image, with some additional customization. For example, you may build an image that is based on the Ubuntu image but installs the Apache web server and your application, as well as the configuration details needed to make your application run. You might create your own images or you might only use those created by others and published in a registry. To build your own image, you create a Docker file with a simple syntax for defining the steps needed to create the image and run it. Each instruction in a Docker file creates a layer in the image. When you change the Docker file and rebuild the image, only those layers which have changed are rebuilt. This is part of what makes images so lightweight, small, and fast when compared to other virtualization technologies. 


A container is a runnable instance of an image. You can create, start, stop, move, or delete a container using the Docker API or CLI. You can connect a container to one or more networks, attach storage to it, or even create a new image based on its current states. By default, a container is relatively well isolated from other containers and its host machine. You can control how isolated a container’s network, storage, or other underlying subsystems are from other containers or from the host machine. A container is defined by its image as well as any configuration options you provide to it when you create or start it. When a container is removed, any changes to its state that are not stored in persistent storage disappear.

7. Networks

Docker networking is a passage through which all the isolated container communicate. There are mainly five network drivers in Docker:

  1. Bridge: It is the default network driver for a container. You use this network when your application is running on standalone containers, i.e. multiple containers communicating with the same docker host.
  2. Host: This driver removes the network isolation between docker containers and docker host. It is used when you don’t need any network isolation between host and container.
  3. Overlay: This network enables swarm services to communicate with each other. It is used when the containers are running on different Docker hosts or when swarm services are formed by multiple applications.
  4. None: This driver disables all the networking.
  5. macvlan: This driver assigns mac address to containers to make them look like physical devices. The traffic is routed between containers through their mac addresses. This network is used when you want the containers to look like a physical device, for example, while migrating a VM setup.

Thanks for visiting here. Share this article if you found it useful.
Like Facebook Page
Connect to twitter
Subscribe my Channel
Connect over Linkedin
Share this on Social Media

About the Author

Keshav Khatore
Keshav Khatore

Public profile: user/profile/99905478

Follow me

facebook linkedin twitter G+ VMTN youtube

I am Keshav Khatore student of Lovely Professional University, Phagwara, Punjab, India, currently pursuing Masters In Computer Application.I am a Member of Redhat Linux, the biggest network on the planet and it's a glad thing for me to be a piece of such extraordinary and lofty community. I expert in Linux and have certification Red-hat Certified System Administration . For Contact- || LinkedIn-

Please SignUp/Login to comment...

Or comment as anonymous...
* Name
* Email ID
Facebook Likes