Docker Architecture

Docker Architecture

Docker consists of three basic concepts:

  • Image: A Docker image is the equivalent of a root filesystem. For example, the official image ubuntu:16.04 contains a complete set of root filesystem for the Ubuntu 16.04 minimal system.
  • Container: The relationship between Image and Container is like that of class and instance in object-oriented programming, where Image is a static definition and Container is a run-time entity of Image. Container can be created, started, stopped, deleted, suspended, etc.
  • Repository: The repository can be thought of as a code control center, used to store mirrors.

Docker uses a client-server (C/S) architecture model to manage and create Docker containers using a remote API.

Docker containers are created through Docker images.

The relationship between containers and mirrors is similar to that of objects and classes in object-oriented programming.

Docker Object-oriented
Container Object
Image Class

Docker Architecture

Concepts Description
Docker Images Docker images are templates used to create Docker containers, such as Ubuntu systems.
Docker Containers A container is an application or group of applications that runs independently and is an entity that mirrors the runtime.
Docker Client Docker clients use the Docker SDK ( to communicate with Docker’s daemons via the command line or other tools.
Docker Host A physical or virtual machine for executing Docker daemons and containers.
Docker Registry Docker repositories are used to store mirrors, which can be understood as code repositories in code control. Docker Hub ( provides a large collection of mirrors for use. A Docker Registry can contain multiple repositories (Repository); each repository can contain multiple tags (Tag); each tag corresponds to a mirror. Often, a repository will contain mirrors of different versions of the same software, and tags are commonly used to correspond to the various versions of that software. We can specify which version of the software is mirrored by the <repository name>:<tag> format. If no label is given, latest will be used as the default label.
Docker Machine Docker Machine is a command line tool that simplifies the installation of Docker on the appropriate platform, such as VirtualBox, Digital Ocean, and Microsoft Azure, with a simple command line.