Docker Fundamentals

Kartik Jettley
3 min readApr 29, 2023

--

Docker is a open source platform that allows you to build, package and deploy software applications in container. Where container is a lightweight, portable and self contained environment that include all the necessary components to run an application such as code, libraries and system tools.

Docker enables develops to create and test applications in a consistent environment and then deploy them across different system with ease. Docker also provides a way to manage and scale applications in a distributed architecture.

Main Components of Docker:

a. Docker Engine: The Docker Engine is core component of Docker which is responsible for managing containers, images networks and volumes. It runs on a host system and provides an API that allows users to interact with it.

b. Docker Images: A Docker image is a read-only template that contains all the files and dependencies required to run an application. Docker images are created using a Docker file, which is a text file that specifies the instructions for building the image.

c. Docker Registry: A Docker registry is a centralized repository for storing Docker images. The most popular registry is Docker Hub, which is a public registry that hosts thousands of images for various applications and services.

d. Docker Compose: Docker Compose is a tool that allows you to define and run multi-container Docker applications. It uses a YAML file to specify the configuration for each container, and can manage the dependencies between them.

e. Docker Swarm: Docker Swarm is a native clustering and orchestration tool for Docker. It allows you to create and manage a cluster of Docker nodes, and deploy and scale applications across the cluster.

Docker Architecture:
Docker contains several components that work together to create a containerized environment.

Below are the main components of Docker:

  1. Docker API: It allows other applications to interact with Docker. It exposes all the functionalities of the Docker client and server, and enables developers to build custom tools and integrations.
  2. Docker Client: It is a command line interface using which users can manage Docker images, networks, volumes and containers.
  3. Docker Server(Docker daemon): It is responsible for running and managing containers. It listens to request from the Docker client and performs the necessary operations.
  4. Docker Images: These images are read only images that contain all the files and dependencies to run an application. It can be downloaded and run on any Docker host.
  5. Docker Containers: Containers are runnable instances of Docker Images. All the containers are isolated from each other and form the host system, and can communicate with each other through a network.
  6. Docker Network: It allow containers to communicate with each other and with the outside world. They provide a way to connect containers and to expose ports to the host system.
  7. Docker Volumes: They provide mechanism for storing and sharing data between containers, and for backing up and restoring data.
Docker Architecture

--

--