This post will walk you through the introduction of docker and help you with the basic understanding of docker commands.

What is Docker?

Docker is a container management service that allows you to easily develop, ship, and run anywhere. The idea of Docker is for developers to easily develop applications, ship them into containers which can then be deployed anywhere.

Docker is a tool that allows the development and operations team to easily deploy their applications in a sandbox (called containers) which runs in isolation to host operating system.

What is Docker Image?

An image is a read-only template with instructions for creating a Docker container. It is a collection of all the necessary dependencies that are required to run the application. A docker image can have an operating system, file system, software dependencies, etc.

What is Docker Container?

A running instance of a docker image is called as docker container. It is a lightweight Virtual environment that runs on top of the kernel (of host operating system and provides virtualization from the host), inside which the application runs. This isolation allows container-based applications to be deployed easily and consistently, regardless of whether the target environment is a private data center, the public cloud, or even a developer’s personal machine. This gives developers the ability to create predictable environments that are isolated from the rest of the applications and can be run anywhere.

Apart from the isolation, docker also gives more control over hardware resources and its virtualization which will help in better and efficient resource utilization.

Docker Engine

Docker Engine is a client-server application which comprises of the following

                            • Docker Daemon: It is a server-side application that has all the business logic which manages docker objects.
                            • REST API: It is an interfaces that programs can use to communicate with the daemon and instruct it what to do.
                            • Command Line Interface:  A CLI client provides the docker commands that you use to perform operations. CLI provides you interface to manage docker images, containers, container network, etc…