Что такое Docker
Docker — это платформа с открытым исходным кодом для создания, доставки и запуска приложений в контейнерах. Контейнер упаковывает код приложения вместе с зависимостями, библиотеками и настройками среды — и запускает его одинаково на ноутбуке разработчика, тестовом сервере и production-VPS.
Docker не заменяет операционную систему: он использует ядро Linux (или WSL2/Hyper-V на Windows) и изолирует процессы на уровне контейнеров. Поэтому на хост обычно ставят Ubuntu или другой Linux-дистрибутив, а приложения разворачивают уже внутри Docker.
Контейнеры и виртуальные машины
И контейнеры, и виртуальные машины решают задачу изоляции, но делают это по-разному.
| Виртуальная машина | Docker-контейнер | |
|---|---|---|
| Изоляция | Отдельное гостевое ядро и полная ОС | Общее ядро хоста, изоляция процессов и файловой системы |
| Ресурсы | Тяжелее: нужен полный образ ОС | Легче: только приложение и его зависимости |
| Старт | Минуты | Секунды |
| Типичное применение | Разные ОС на одном железе | Микросервисы, CI/CD, типовые стеки (Nginx, PostgreSQL, Redis) |
Контейнеры дают многие преимущества виртуализации — предсказуемое окружение, переносимость, масштабирование — но без накладных расходов отдельной виртуальной машины на каждый сервис.
Основные понятия Docker
Образ (image)
Образ — неизменяемый шаблон файловой системы и метаданных запуска. Образ собирают из слоёв (Dockerfile) или скачивают из реестра, чаще всего Docker Hub. Подробнее о работе с образами — в статье «Образы Docker: создание, удаление, оптимизация».
Контейнер (container)
Контейнер — запущенный экземпляр образа. У одного образа может быть много контейнеров. Управление ими — через CLI (docker run, docker ps, docker exec) или графические панели вроде Portainer.
Том (volume)
Том хранит данные вне жизненного цикла контейнера: базы данных, загруженные файлы, конфиги. Без томов данные пропадут при удалении контейнера. Пример работы с томами — в материале «Передача данных между контейнером Docker и хостом».
Docker Compose
Docker Compose описывает несколько связанных контейнеров в одном YAML-файле: веб-сервер, база, кэш, сеть между ними. Удобно для локальной разработки и небольших production-стеков. Полная установка Docker и Compose на Ubuntu — в пошаговом руководстве.
Зачем используют Docker
- Одинаковая среда — «у меня работает» перестаёт быть аргументом: образ один и тот же везде.
- Быстрое развёртывание — новый инстанс поднимается за секунды из готового образа.
- Изоляция сервисов — падение одного контейнера не ломает соседние.
- Версионирование — образ помечают тегом (
nginx:1.25,myapp:v2.3) и откатываются при необходимости. - Интеграция с CI/CD — сборка образа в pipeline и выкладка на VPS без ручной настройки сервера.
Docker особенно удобен для веб-приложений, API, очередей, мониторинга и типовых сервисов, которые уже есть в виде официальных образов.
Системные требования
Для Linux достаточно ядра 3.10+ (практически любая актуальная Ubuntu/Debian). Жёстких требований к CPU нет — всё зависит от нагрузки. Для комфортной работы с несколькими контейнерами на VPS разумно закладывать от 2 ГБ RAM и стабильный доступ в интернет для загрузки образов.
Установка на Ubuntu 22.04 описана в отдельной инструкции; для других версий Ubuntu — в материале «Как установить Docker на Ubuntu».
Docker — это не операционная система
Образ ubuntu:22.04 в Docker — это минимальная файловая система для запуска процессов, а не полноценная серверная ОС с init-системой «из коробки». Хост-машина при этом остаётся обычным Linux-сервером. Подробнее об этом различии — в серии «Docker — это не ОС».
С чего начать
- Закажите VPS с Ubuntu или используйте существующий сервер.
- Установите Docker по инструкции для Ubuntu 22.04.
- Запустите тестовый контейнер:
docker run hello-world. - Изучите основные команды Docker и при необходимости настройте Docker Compose.
Если нужны альтернативы Docker (Podman, containerd и др.), смотрите обзор «Лучшие альтернативы Docker».
Заключение
Docker — стандарт де-факто для контейнеризации: он упрощает доставку приложений, ускоряет развёртывание и делает инфраструктуру предсказуемой. На VPS Docker запускают веб-сервисы, базы данных, брокеры сообщений и целые стеки через Compose — без ручной установки каждого пакета на хост.