Сергей Ринг

Основные термины Docker

Основные термины Докер и Kubernetes на простых примерах из жизни. Базовые понятия и термины в контексте масштабирования и развёртывания

21955
Обложка поста Основные термины Docker

В первой части были рассмотрены концепции Docker’а. В сегодняшней статье вы продолжите его изучение и познакомитесь с терминами из его экосистемы.

Термины

Все термины для лучшего восприятия разделены на две группы: базовые термины (те, с которыми вы столкнётесь в первую очередь) и термины в контексте масштабирования (пригодятся при использовании нескольких контейнеров одновременно).

Базовые термины

Docker-платформа — программа, обеспечивающая возможность упаковки и запуска приложения в контейнере на любом Linux сервере. Она собирает код и зависимости. Благодаря хорошей мобильности и воспроизводимости это упрощает масштабирование.

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Docker-движок — клиент-серверное приложение. Docker Community Edition (CE) — бесплатная версия и, скорее всего, вы будете использовать именно её. Docker Enterprise — платный продукт, он поставляется с дополнительными функциями поддержки, управления и безопасности.

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Docker-клиент — основной способ взаимодействия с Docker’ом. При использовании Docker Command Line Interface (CLI) вы просто вводите в терминал нужную команду, которая обычно начинается со слова docker. Затем Docker-клиент использует Docker API для отправки команды на Docker Daemon.

Docker Daemon — Docker-сервер, отвечающий на Docker API запросы. Он управляет образами, контейнерами, Docker-сетями и тома Docker.

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Docker тома (Volumes) — предпочтительный механизм для хранения используемых и генерируемых вашим приложением данных.

Docker-реестр — удалённое место, где содержатся все Docker-образы. Вы загружаете туда образы или, наоборот, скачиваете их оттуда. Можно использовать как ваш собственный реестр, так и реестр любого провайдера. Например, AWS или Google Cloud.

Docker Hub — пожалуй, самый известный и крупный Docker-реестр. Там вы сможете найти нужный вам образ или загрузить ваш собственный — всё это бесплатно.

Docker-репозиторий — собрание Docker-образов с одинаковыми названиями, но с разными тегами. Тег — это идентификатор Docker-образа. Обычно в репозитории содержатся разные версии одного и того же образа. К примеру, Python — название одного из самых популярных Docker-репозиториев на Docker Hub-е. Python:3.7-slim относится к версии Python-образа с тегом 3.7-slim в Python репозитории. В реестр можно загружать как целый репозиторий, так и один образ.

Масштабирование контейнеров

Следующие четыре термина относятся к использованию нескольких контейнеров одновременно.

Docker-сеть — позволяет объединять несколько контейнеров. Объединяемые контейнеры могут находиться на одном или нескольких хостах. Хотите узнать больше? Обратите внимание на эту статью.

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Docker Compose — инструмент, который упрощает запуск приложения, использующего несколько контейнеров. Он позволяет вам добавлять команды для повторного использования в специальный файл — docker-compose.yml. Интерфейс Docker Compose command line упростит взаимодействие с вашим мультиконтейнерным приложением. К тому же Docker Compose предоставляется бесплатно вместе с установщиком Docker.

Docker Swarm (рой) — инструмент для оркестрирования (управления) развёртывания вашего приложения. Официальный Docker-туториал научит вас им пользоваться (смотрите раздел 4).

На данный момент этот блок не поддерживается, но мы не забыли о нём!Наша команда уже занята его разработкой, он будет доступен в ближайшее время.

Docker-сервисы — разные части приложения. Из официальной документации:

Docker-сервисы позволяют вам масштабировать контейнеры между несколькими Docker Daemons, а также использовать Docker Swarms.

Кратко о каждом термине

Базовые термины

  • Docker-платформа — программа, запускающая приложение.
  • Docker-движок — клиент-серверное  приложение (Community Edition или Docker Enterprise).
  • Docker-клиент — оперирует Docker CLI для взаимодействия с Docker Daemon.
  • Docker Daemon — Docker-сервер управляющий ключевыми функциями.
  • Docker тома (Volumes) — хранилище данных для приложения.
  • Docker-реестр — удалённое хранилище образов.
  • Docker Hub — самый популярный Docker-реестр.
  • Docker-репозиторий — несколько сгруппированных образов, например Alpine.

Масштабирование контейнеров

  • Docker-сеть — соединяет контейнеры вместе.
  • Docker Compose — помогает сэкономить время при создании мульти-контейнерных приложений.
  • Docker Swarm — оркестрация развёртывания приложения.
  • Docker-сервисы — контейнеры в продакшене.

Немного о Kubernetes

Kubernetes — автоматизирует процесс развёртывания, масштабирования и управления контейнерами приложений. Вместо Docker Swarm можно использовать Kubernetes. Правда он не является официальной частью Doker’а, Kubernetes больше похож на Docker BFF.

Что дальше?

Если вы никогда не работали с Docker’ом, самое время немного попрактиковаться.

Docker работает на Mac OS, Linux и, конечно же, Windows. Если у вас Mac или Windows, устанавливайте последнюю версию Docker Desktop здесь. Вместе с ней идёт Kubernetes. Если у вас другая операционная система, зайдите сюда и выберите нужную вам версию.

После того как вы установили Docker на свой компьютер, выполните два первых пункта из Docker-туториала.

21955