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