Docker: Architecture

Docker uses a client-server architecture, where the user interacts with the client. And, the client interacts with the server using REST API.

The server is known as “Docker Engine”.

Docker- Client Server
Docker- Client Server

The Docker engine is mainly responsible for running Docker containers.

Container Support

Running a container needs support from the OS kernel. So, not every Operating System can run all types of containers.

Let’s check container compatibility-

Host
Operating System
Supports
Linux Container
Supports
Windows Container
Notes
WindowsYesYesSupports Linux containers as it contains Linux kernel, for Linux subsystems.
LinuxYesNo
MacOSYesNoSupports Linux using lightweight Linux VM.

Container

NOTES

A container is an isolated environment for running an application. Here are the main criteria for the container-

  • A container stores all information and contents required to run an application.
  • Containers are very lightweight, compared to setting up an isolated environment like a virtual machine.
  • Provides security to the host system, as the process and commands executed inside a container has no effect on the host machine.
  • Container images are immutable. That is why, it is very easy to scan the images for CVE(common vulnerabilities and exposures).
  • Containers are extremely lean compared to Virtual Machines(VMs), that is why it is very easy and less resource-intensive to create a container.
  • The application remains wrapped inside the container, and the outside infrastructure does not need to know any details of the application implementation.

This enables us to run applications separately that use different versions of programming language or other software-

Docker Architecture

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.