🐳Docker

What is Docker?

Docker is a set of platform-as-a service products that use OS-level virtualization to deliver software in packages called containers. Docker is a tool that allows developers, sysadmins, etc. to easily deploy their applications in a sandbox (called containers) to run on the host operating system, i.e., Linux, Windows, or macOS. Docker packages software into standardized units called containers that have everything the software needs to run, including libraries, system tools, code, and runtime. Docker provides a standard way to run your code and is an operating system for containers. Unlike virtual machines, containers do not have high overhead and hence enable more efficient usage of the underlying system and resources. Docker is installed on each server and provides simple commands you can use to build, start, or stop containers. Docker can package an application and its dependencies in a virtual container that can run on any Linux, Windows, or macOS computer. Docker enables users to package an application with all of its dependencies into a standardized unit for software development.

Benefits of Using Docker

There are many benefits to using Docker, including:

  • Portability: Docker images are portable, making it easy to deploy your application to any environment.

  • Scalability: Docker containers are lightweight, which makes them easy to scale up or down as needed.

  • Security: Docker containers are isolated, which provides added security for your application.

  • Efficiency: Docker images are cached, which can speed up the build and deployment process.

Challenges of Using Docker

There are also a few challenges to using Docker, including:

  • Learning curve: Docker can be complex to learn, especially for those who are new to containerization.

  • Complexity: Docker can be complex to manage, especially when working with a large number of containers.

  • Security: Docker containers can be vulnerable to security threats, which requires careful management and monitoring.

Core Components of Docker

Docker Engine is one of the core components of Docker. It is responsible for the overall functioning of the Docker platform.

Docker Engine is a client-server based application and consists of 3 main components.

  1. Server

  2. REST API

  3. Client

The Server runs a daemon known as dockerd (Docker Daemon), which is nothing but a process. It is responsible for creating and managing Docker Images, Containers, Networks and Volumes on the Docker platform.

The REST API specifies how the applications can interact with the Server, and instruct it to get their job done.

The Client is nothing but a command line interface, that allows users to interact with Docker using the commands.

Docker Terminology

Let us take a quick look at some of the terminology associated with Docker.

Docker Images and Docker Containers are the two essential things that you will come across daily while working with Docker.

In simple terms, a Docker Image is a template that contains the application, and all the dependencies required to run that application on Docker.

On the other hand, as stated earlier, a Docker Container is a logical entity. In more precise terms, it is a running instance of the Docker Image.

Last updated