Docker

Программная платформа для быстрой разработки, тестирования и развертывания приложений

Docker Программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации, контейнеризатор приложений. Позволяет «упаковать» приложение со всем своим окружением и зависимостями в контейнер
Docker-image — шаблон только для чтения (read-only) с набором некоторых инструкций, предназначенных для создания контейнера. Он состоит из слоев, которые Docker комбинирует в один образ при помощи вспомогательной файловой системы UnionFS. Так решается проблема нерационального использования дисковой памяти. Параметры образа определяются в Docker-file.


Возможности

Изоляция и безопасность

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

Портативность и консистентность

Благодаря Docker‑образам можно упаковать приложение вместе со всеми библиотеками и настройками, а затем развернуть его в любой среде, где установлен Docker. Один и тот же образ гарантирует одинаковое поведение как в локальной среде, так и на сервере.

Масштабируемость и оркестрация

Docker‑контейнеры легко масштабировать с помощью систем оркестрации, таких как Kubernetes, Docker Swarm и Mesos. Docker обеспечивает быстрый старт контейнеров (секунды) и позволяет динамически балансировать нагрузку между узлами кластера.

Управление зависимостями и CI/CD

Docker‑образы можно автоматически собирать в пайплайнах CI/CD, используя Dockerfile и инструменты вроде GitHub Actions. Это упрощает сборку, тестирование и доставку кода.

Экономия ресурсов и скорость

Контейнеры используют одно ядро ОС, поэтому их размер и потребление памяти значительно меньше виртуальных машин. Это позволяет запускать десятки контейнеров на одном сервере без существенного влияния на производительность.

Архитектура

Docker Engine

Ядро системы, состоящее из демона dockerd, REST‑API и CLI. Процесс dockerd взаимодействует с ядром Linux через gRPC и использует собственный файловый слой OverlayFS для управления образами.

Docker Registry

Сервис хранения и распространения образов. В официальном репозитории Docker Hub используется открытая спецификация, а также возможен запуск собственного реестра, например, Harbor как open‑source решения.

Docker Compose

Инструмент для декларативного описания многоконтейнерных приложений через docker‑compose.yml. Compose позволяет одновременно запускать сервисы, монтировать тома и настраивать сети без необходимости писать скрипты.

Docker Swarm

Встроенная система оркестрации, использующая сервисы и кластеры для управления контейнерами. Swarm обеспечивает автоматическое распределение нагрузки и самовосстановление сервисов.

Docker Networking

Набор драйверов (bridge, overlay, macvlan и т.д.) для гибкой настройки сетевых подключений между контейнерами. Драйверы позволяют изолировать сети внутри кластера и обеспечивать безопасную коммуникацию между микросервисами.