Learn Docker Part 2: Terms and Concepts

https://towardsdatascience.com/learn-enough-docker-to-be-useful-1c40ea269fa8
  • Transfer
In the first part of the translation of a series of materials on Docker, we made a general overview of this system. In particular, we talked about why containerization technologies are important nowadays, about what Docker containers are, and about what they can be compared with. Today, we’ll talk about the Docker ecosystem and look at important terms you might encounter on your way to learning and using Docker. Continuing the analogy with different goodies, imagine that our terms are donuts. A dozen donuts.



Part 1: Basics
Part 2: Terms and Concepts
Part 3: Dockerfile Files


Docker Ecosystem Terms


I have broken down the terms that you might encounter while working with Docker into two parts. I think it will facilitate their memorization. The first block of terms will relate to Docker mechanisms. The second is a means of scaling solutions based on containers.

Docker mechanisms


▍Docker Platform



Docker

Platform Docker ( Docker Platform ) is a program that allows us to package applications into containers and run them on servers. The Docker platform allows you to place code and its dependencies in containers. As a result, container-based systems are easy to scale, since containers can be transported and replayed.

DoDocker Engine



Engine

engine Docker ( Docker Engine ) - a client-server application. The Docker company divided the Docker engine into two products. Docker Community Edition (CE) is free software, largely based on open source tools .

You will probably use this version of Docker. Docker Enterprise is a paid version of the system that gives users additional capabilities in the area of ​​systems support, management and security. The paid version of Docker gives the company the means necessary for its existence.

▍ Customer Docker



Docker client and other ecosystem mechanisms (taken from documentation )

The Docker Client ( Docker Client ) is the main tool used to interact with Docker. So, when working with the Docker command line interface ( Docker Command Line Interface , CLI), commands are entered into the terminal, starting with the keyworddocker, referring to the client. The client then uses the Docker API to send commands to the Docker daemon.

▍ Demon Docker


The Docker Daemon is a Docker server that waits for requests to the Docker API. The Docker daemon manages images, containers, networks and volumes.

▍Toma Docker



Tom

Tocker Docker ( Docker Volumes ) are the most preferred mechanism for permanent storage of data consumed or produced by applications.

▍Docker Registry


The Docker Registry ( Docker Registry ) is a remote platform used to store Docker images. While working with Docker, images are sent to the registry and downloaded from it. Such a registry can be organized by those who use Docker. In addition, cloud service providers can maintain their own registries. For example, this applies to AWS and Google Cloud .

▍Hub Docker


The Docker Hub ( Docker Hub ) is the largest registry of Docker images. In addition, it is this registry that is used when working with Docker by default. You can use the Docker hub for free.

DoDocker Repository


The Docker Repository ( Docker Repository ) is a collection of Docker images that have the same name and different tags. Tags are image identifiers.

Typically, different versions of the same images are stored in repositories. For example, Python is the name of the most popular official Docker repository on the Docker hub. But Python: 3.7-slim is the version of the image with the 3.7-slim tag in the Python repository. You can send both a whole repository and a separate image to the registry.

Now let's talk about the docker ecosystem terms related to scaling.

Scaling container-based solutions


The following four terms are related to the simultaneous use of multiple containers.

DoDocker Network



Docker network (taken from documentation )

Docker network mechanisms ( Docker Networking ) allow you to organize communication between Docker containers. Containers connected via a network can run on the same host or on different hosts. Details about the Docker network subsystem can be found here .

▍Docker Compose


Docker Compose is a tool that simplifies the deployment of applications that require multiple Docker containers to work. Docker Compose allows you to run the commands described in the file docker-compose.yml. These commands can be executed as many times as required. The Docker Compose command line interface makes it easy to interact with multi-bin applications. This tool is installed when you install Docker.

▍Docker Swarm



The

Docker Swarm swarm of bees is a solution for managing container deployments (that is, as they say, for orchestrating containers). In this material from the official Docker training course, you can find information about Docker Swarm. I would like to recommend that you do not spend time exploring Docker Swarm if you do not have a good reason.

DoDocker Services


Docker Services ( Docker Services ) are various parts of a distributed application. This is what the documentation says about them :

Services are just “containers in production”. Within the service, only one image is executed, but the service determines exactly how the image is executed. In particular, we are talking about which ports should be used, how many container replicas must be running in order for the service to provide the necessary computing power, and so on. Scaling services involves changing the number of instances of the container, in which a certain program works, thanks to which the service is allocated as many system resources as it needs to solve a certain task.

Docker services allow you to scale containers within several Docker daemons, thanks to them there is also the Docker Swarm technology.

Short list of terms


Let's, literally in a nutshell, we will repeat the terms just introduced to you:

Docker mechanisms:

  1. Platform Docker - software, through which you can work with containers.
  2. Docker engine is a client-server application (CE or Enterprise).
  3. Docker client is a program that allows you to interact with the Docker daemon via the CLI.
  4. The Docker Daemon is a Docker server responsible for managing key system mechanisms.
  5. Docker Volumes is a repository of information used in containers.
  6. Registry Docker - remote image repository.
  7. The Docker hub is the largest docker registry used by default.
  8. A repository is a collection of Docker images with the same name.

Scaling:

  1. The Docker network subsystem is an environment that allows you to organize the interaction of containers.
  2. Docker Compose is a technology that simplifies working with multi-container applications.
  3. Docker Swarm is a tool for managing container deployment.
  4. Docker services - containers in production.

Above, we said that we will examine a dozen terms of the Docker ecosystem, comparing them with a dozen donuts. We have already reviewed 12 terms, and, it would seem, we can stop at this. But we, just in case , will add one more term to our list.


Here, just in case, another donut

This term refers not to the Docker platform itself, but to technology that is very often used in conjunction with Docker.

Kubernetes



Kubernetes

Kubernetes is a technology that automates the deployment, scaling, and management of containerized applications. It is the undisputed market leader in container orchestration tools. If you need a tool for working with groups of containers, for scaling solutions based on them, do not use Docker Swarm, but Kubernetes. Kubernetes is not part of Docker. They with Docker are more like best friends.

Now that you are familiar with the common concepts of Docker and terminology, you can begin practical experiments.

Results: we bake donuts with Docker


Remember the last time we compared the Docker platform with the oven that is installed in the kitchen? Now is the time to install Docker in your “kitchen” and cook something.

Docker can be run locally on Linux, Mac and Windows. If you are using a Mac or Windows, you can install the latest version of Docker Desktop from here . Together with this program, by the way, Kubernetes is also established. If you are installing Docker on another platform, then look here to find the right version.

After installing Docker, take a look at the first two parts of the official manual .

Next time we’ll continue to talk about Docker. In particular, let's talk about the Dockerfile files.

Dear readers! If, while reading the materials of this series, you discover Docker, please tell us about how you plan to use application containerization technologies.


Also popular now: