Docker — платформа для упаковки, запуска и распространения приложений в контейнерах. Контейнер — изолированный процесс с собственной файловой системой, сетью, PID-неймспейсом, но использующий ядро хост-ОС (в отличие от VM с собственным ядром). Появился в 2013 году, за 10 лет стал стандартом индустрии.
Ключевые концепции: Dockerfile — рецепт сборки образа (`FROM node:22`, `COPY . .`, `RUN npm install`, `CMD ["npm", "start"]`). Image — готовый снимок с приложением и зависимостями. Container — работающий экземпляр image. Registry — репозиторий образов (Docker Hub, ghcr.io, GitLab Registry).
Почему все перешли на Docker: (1) «works on my machine» → «works everywhere» — образ одинаковый на dev, staging, production, (2) быстрое масштабирование — контейнер запускается за секунды, VM — за минуты, (3) микросервисы — каждый в своём контейнере с изоляцией. Для CI/CD, deployment на Kubernetes, dev-окружения — Docker де-факто стандарт.
На нашем VPS Docker + docker-compose устанавливается через готовый cloud-init шаблон при создании. Все наши тарифы поддерживают nested KVM — Docker работает без ограничений, включая docker-in-docker для CI.