Термин · Глоссарий B2B-ПО

Docker (Docker)

Docker – платформа контейнеризации для упаковки, доставки и запуска приложений в изолированных контейнерах на любой инфраструктуре. Основана в 2013 году, стала стандартом индустрии для DevOps и облачно-нативной разработки.

Буква «D» В категориях: 5 Платформ: 6+

Введение

Docker – открытая платформа для контейнеризации приложений, позволяющая упаковывать приложение с его зависимостями в стандартизованный контейнер, который одинаково работает в любой среде: на ноутбуке разработчика, тестовом сервере и production-инфраструктуре. Созданная компанией dotCloud (впоследствии переименованной в Docker Inc.) и представленная публично в марте 2013 года, Docker радикально упростила контейнеризацию и сделала её доступной для широкого круга разработчиков.

Docker не изобрёл контейнеры – технология восходит к Unix chroot (1979), FreeBSD Jail, OpenVZ, LXC. Но Docker предложил удобный CLI, декларативный формат Dockerfile, общедоступный реестр образов Docker Hub и строгую изоляцию приложений, что обеспечило массовое распространение.

История и контекст

В марте 2013 года на конференции PyCon Соломон Хайкс представил Docker как внутренний инструмент компании dotCloud. Изначально Docker использовал LXC (Linux Containers), но начиная с версии 0.9 перешёл на собственную библиотеку libcontainer (Go). В 2015 году Docker инициировал создание Open Container Initiative (OCI) для стандартизации форматов контейнерных образов и runtime.

К 2016 году Docker получил широчайшее распространение. Однако в «войне оркестраторов» Docker Swarm проиграл Kubernetes. В 2019 году Mirantis приобрела Docker Enterprise. Сегодня Docker Desktop (для разработчиков) и Docker Hub (реестр образов) остаются ключевыми инструментами экосистемы, хотя container runtime в production всё чаще – containerd или CRI-O напрямую.

Как это работает

Основные компоненты Docker:

  • Docker Engine – daemon-процесс, управляющий контейнерами на хосте.
  • Docker CLI – командная строка для управления образами и контейнерами.
  • Dockerfile – текстовый файл с инструкциями сборки образа (FROM, RUN, COPY, CMD).
  • Docker Image – неизменяемый многослойный образ файловой системы с приложением и зависимостями.
  • Docker Container – запущенный экземпляр образа с изолированным процессом.
  • Docker Registry – хранилище образов (Docker Hub, GitLab Registry, Harbor).

Механизм изоляции: namespaces (изоляция PID, сети, файловой системы, пользователей) и cgroups (ограничение ресурсов CPU, RAM). Слоистая файловая система (union filesystem) позволяет слоям образа разделяться между контейнерами, экономя место.

Где применяется

  • Разработка – унификация окружения, устранение проблем «у меня работает».
  • CI/CD – контейнеры обеспечивают воспроизводимые среды сборки в GitHub Actions, GitLab CI, Jenkins.
  • Микросервисы – каждый сервис в отдельном контейнере с независимым жизненным циклом.
  • ML и Data Science – упаковка моделей, Jupyter-окружений и пайплайнов данных.
  • Локальное тестирование сервисов – docker-compose для запуска многоконтейнерных приложений локально.

Преимущества и ограничения

Преимущества: стандартизированный формат упаковки приложений; воспроизводимость среды; огромный реестр готовых образов на Docker Hub; простая интеграция с CI/CD; легковесность по сравнению с VM.

Ограничения: менее строгая изоляция, чем у VM; контейнеры Linux не запускаются нативно на Windows; для production-оркестрации требуется Kubernetes или Swarm; управление хранилищем для stateful-приложений усложнено.

Связь с другими понятиями

Docker является основным инструментом контейнеризации, а Kubernetes – инструментом оркестрации Docker-контейнеров в кластерах. Docker Compose – инструмент для локального запуска многоконтейнерных приложений, описанных в YAML. В экосистеме MLOps Docker-образы стандартизируют среды обучения и инференса ML-моделей. CI/CD-платформы используют Docker для создания воспроизводимых сред сборки и тестирования.

Понятия из глоссария Цифрового маркетплейса, которые часто встречаются вместе с термином «Docker».

Платформы класса «Docker»

Решения из каталога Цифрового маркетплейса, относящиеся к этому классу ПО. Карточки ведут на полные карточки платформ с тарифами, обзорами и кейсами внедрения.

Платформа для создания отказоустойчивой инфраструктуры клиентских приложений
Цена по запросу
Подробнее →
Tarantool Data Grid

Tarantool Data Grid

Данные и аналитика
Tarantool — высокопроизводительная СУБД с поддержкой in-memory и дискового хранения данных, обеспечивающая ACI...
Цена по запросу
★ 4.8
Подробнее →
БАРС.Мониторинг-ЖКХ

БАРС.Мониторинг-ЖКХ

Данные и аналитика
Информационно-аналитическая система для мониторинга и управления жилищно-коммунальным хозяйством на региональн...
Цена по запросу
★ 5.0
Подробнее →
МА

Маршрутизатор

Данные и аналитика
Яндекс.Маршрутизация (Router API) — программный интерфейс для построения оптимальных маршрутов, расчёта времен...
Цена по запросу
Подробнее →

Категории каталога

Разделы каталога Цифрового маркетплейса, в которые входят решения, использующие «Docker».

Где применяется

Отрасли, в которых «Docker» используется на практике. Откройте отраслевой раздел Цифрового маркетплейса, чтобы увидеть подходящие решения, кейсы и новости.

Частые вопросы про Docker

Что такое Docker?

Платформа контейнеризации для упаковки приложений с зависимостями в образы и их запуска в изолированных контейнерах на любой инфраструктуре.

Что такое Docker Hub?

Публичный реестр Docker-образов с миллионами готовых образов: от официальных (nginx, postgres, node) до образов от сообщества.

Что такое docker-compose?

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

Чем Docker отличается от Kubernetes?

Docker создаёт и запускает контейнеры. Kubernetes оркестрирует контейнеры в кластере – распределяет, масштабирует, восстанавливает. Они дополняют друг друга.

Нужен ли Docker для работы с Kubernetes?

Не обязательно. K8s поддерживает несколько container runtimes (containerd, CRI-O). Docker Desktop удобен для сборки образов, но не является обязательным для production.

Что такое базовый образ в Docker?

Начальный слой образа (FROM в Dockerfile) – обычно минималистичный дистрибутив Linux (Alpine, Ubuntu) или преднастроенная среда выполнения (python:3.11-slim, node:20-alpine).