English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Docker Architecture

Docker includes three basic concepts:

  • Image (Image): Docker image (Image) is equivalent to a root filesystem. For example, the official image ubuntu:16.04 includes a complete set of Ubuntu16.04 The root filesystem of the minimum system.

  • Container (Container): The relationship between images (Image) and containers (Container) is like the relationship between classes and instances in object-oriented program design. Images are static definitions, and containers are the entities that run at the time of the image. Containers can be created, started, stopped, deleted, paused, and so on.

  • Repository (Repository): The repository can be regarded as a code control center, used to save images.

Docker uses a client-Server (C/S) architecture pattern, which uses remote APIs to manage and create Docker containers.

Docker containers are created through Docker images.

The relationship between containers and images in Docker is similar to the relationship between objects and classes in object-oriented programming.

DockerObject-oriented
ContainerObject
ImageClass

ConceptDescription

Docker image (Images)

Docker images are templates used to create Docker containers, such as the Ubuntu system.

Docker container (Container)

A container is an independently running application or a group of applications, which is the entity that runs the image.

Docker client (Client)

The Docker client uses the command line or other tools to use Docker SDK (https://docs.docker.com/develop/sdk/) communicates with the Docker daemon.

Docker Host (Host)

A physical or virtual machine used to execute the Docker daemon and containers.

Docker Registry

Docker repositories are used to store images and can be understood as code repositories in code control.

Docker Hub(https://hub.docker.com) which provides a vast collection of images for use.

A Docker Registry can contain multiple repositories (Repositories); each repository can contain multiple tags (Tags); each tag corresponds to an image.

Generally, a repository may contain images of different versions of the same software, and tags are often used to correspond to different versions of the software. We can specify a specific version of the software's image using the format <repository name>:<tag>. If no tag is specified, it will be latest As the default tag.

Docker Machine

Docker Machine is a command-line tool that simplifies Docker installation, allowing you to install Docker on various platforms with a single command, such as VirtualBox, Digital Ocean, Microsoft Azure.