Docker — это платформа для разработки, доставки и запуска приложений с помощью контейнеризации. Контейнеризация — это технология, позволяющая упаковать приложение со всем его окружением и зависимостями в контейнер, который можно запускать на любой системе, поддерживающей Docker.

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

  • Контейнеры: Основная абстракция Docker, представляющая собой легковесный, стандартизированный исполняемый пакет, который включает себя все необходимое для запуска приложения — код, среду выполнения, библиотеки, переменные окружения и конфигурационные файлы.
  • Docker Engine: Основной компонент, отвечающий за создание, запуск и управление Docker контейнерами.
  • Dockerfile: Простой текстовый файл, который содержит инструкции для создания Docker изображения (image), включая базовое изображение, зависимости, переменные окружения и команды для запуска приложения.
  • Изображения (Images): Шаблон, с помощью которого создаются Docker контейнеры. Изображение включает в себя приложение и его зависимости, но оно неактивно до момента, пока не будет запущено в виде контейнера.
  • Docker Compose: Инструмент, позволяющий определять и запускать многоконтейнерные приложения Docker. Конфигурация таких приложений описывается с помощью YAML-файла.
  • Docker Hub и реестры: Службы, которые позволяют пользователям хранить и распространять Docker изображения. Docker Hub — общедоступный реестр, где доступны миллионы изображений.

Docker предоставляет согласованную и воспроизводимую среду для разработки, что значительно упрощает процесс разработки, тестирования и продакшена приложений, позволяя разработчикам сфокусироваться на самом коде, а не на инфраструктуре.