Docker
Docker — платформа контейнеризации: инструмент сборки, запуска и распространения контейнеризированных приложений.
Компоненты
Docker Engine: daemon + CLI. Dockerfile: декларативный build. Image: read-only шаблон. Container: запущенный instance. Docker Hub / private registries: хранение и распространение образов. Docker Compose: оркестрация multi-container для dev.
Dockerfile best practices
Multi-stage build: separate build от runtime, минимальный final image. Base image alpine/distroless: <100MB. .dockerignore: исключить node_modules, .git. Layer ordering: часто меняющиеся команды в конце. USER non-root. HEALTHCHECK для оркестраторов. Один процесс на контейнер.
Ecosystem
Docker Desktop для локальной разработки. BuildKit: параллельный build с cache. Buildx: multi-arch (amd64+arm64). Docker Scan: поиск уязвимостей в image. Docker Content Trust: signed images. Registry authentication и image immutability.
Production
Обычно не используется напрямую в production — вместо него containerd или CRI-O под управлением Kubernetes. Docker остаётся стандартом для локальной разработки и CI. Image из Docker (OCI-совместимые) запускаются любым OCI runtime. Security scan на CI обязателен.