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 и т.д.) для гибкой настройки сетевых подключений между контейнерами. Драйверы позволяют изолировать сети внутри кластера и обеспечивать безопасную коммуникацию между микросервисами.
