3.4 KiB
3.4 KiB
Что такое Docker
Docker - это платформа для упаковки приложения вместе со всеми зависимостями в изолированную среду (контейнер), которая запускается одинаково на любом устройстве.
Коротко по терминам:
- Образ (image) - неизменяемый «снимок» файловой системы и метаданных запуска (команда по умолчанию, переменные окружения, порты). Образ строится из слоёв; его можно скачать из реестра (например, Docker Hub) или собрать сами из
Dockerfile. - Контейнер - запущенный экземпляр образа. У контейнера есть ID, имя, сеть, опционально тома с данными. Один образ может породить много контейнеров.
- Docker Engine - демон и CLI (
docker), которые создают и управляют контейнерами на хосте. - Docker Compose - инструмент (плагин к CLI:
docker compose) для описания нескольких сервисов в одном YAML-файле: сборка образов, порты, тома, сети, зависимости запуска, переменные окружения.
## Зачем это нужно
- Стабильность - «у меня не работает» больше не актуально, докер образ можно запускать на любом устройстве, где установлен докер.
- Изоляция - приложения не мешают друг другу версиями библиотек и не требуют полноценной виртуальной машины на каждый сервис.
- Масштаб - образы легко переносить, дальше их поднимают Kubernetes, Nomad и т.д., но база всё равно Docker-образ.
- Compose для стека - фронт, бэкенд, БД и кэш поднимаются одной командой и общаются по внутренней сети.
Docker и виртуальная машина
Виртуальная машина эмулирует железо и поднимает полную ОС. Контейнер делится ядром хоста и изолируется, он легче и быстрее стартует, но это не замена полной изоляции уровня ВМ для всех сценариев безопасности.
Когда достаточно docker run, а когда Compose
docker run- один контейнер, эксперимент, отладка, скрипты.docker compose- несколько связанных сервисов, общая сеть, тома, единая точка входа для разработки и демо.