О Docker
Docker - это движок контейнеров: он упаковывает приложение вместе с зависимостями в образ и запускает его изолированно на ядре хоста. Разработчики используют его, чтобы получить одинаковое окружение на локальной машине и в продакшене. Небольшие команды размещают на одном сервере несколько сервисов, зависимости которых не мешают друг другу.
После выдачи на вашем Linux VPS (Debian 12, Debian 13, Ubuntu 22.04 или 24.04, а также Ubuntu 20.04 с оговорками, о которых сказано ниже) установлен Docker Engine из официального apt-репозитория Docker. Пакеты docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin и docker-compose-plugin на месте, службы docker и containerd включены в автозапуск.
Перед установкой отпечаток ключа подписи репозитория сверяется с эталонным. В конце рецепта запускается контейнер hello-world, чтобы убедиться, что демон отвечает. Дальше сервер в вашем распоряжении: ни один пользователь по умолчанию не добавляется в группу docker, и никакие приложения за вас не разворачиваются.
Что можно делать с Docker
Официальный apt-репозиторий Docker
Пакеты берутся с download.docker.com, отпечаток ключа подписи проверяется. Обновления приходят через apt, как и для остальной системы.
Compose и Buildx в комплекте
Плагин Compose вызывается командой
docker compose(без дефиса), а Buildx нужен для сборки образов. Мультисервисный стек можно развернуть уже при первом подключении.Ротация логов уже настроена
Если файла
/etc/docker/daemon.jsonнет, рецепт создаёт его с драйверомjson-file, лимитом 10 МБ на файл и тремя хранимыми файлами. Логи контейнеров не заполнят диск незаметно.Конфликтующие пакеты удалены
Неофициальные пакеты вроде
docker.io,podman-docker,containerdиruncудаляются до установки. Это исключает смешение версий, из-за которого демон может не запуститься.Root-эквивалентный доступ под контролем
Ни один аккаунт не добавляется в группу
docker, а она равносильна доступу root. Кому выдать эту привилегию, решаете вы.Понятный журнал установки
Каждый шаг записывается в
/var/log/docker-install.log, а файл/var/lib/docker-install.doneподтверждает, что рецепт выполнен до конца.
Начало работы с Docker
От заказа до запуска за несколько минут.
- 1
Закажите VPS с отмеченным Docker
Выберите Linux VPS в Париже или Франкфурте, укажите Debian 12, Debian 13, Ubuntu 22.04 или 24.04 и отметьте Docker на вкладке «Applications» формы заказа.
- 2
Подключитесь и проверьте установку
Когда сервер будет выдан, подключитесь по SSH с полученными данными доступа. Установка выполняется при первом запуске: если файла-маркера ещё нет, немного подождите и посмотрите журнал.
Bashssh USER@SERVER_IP cat /var/lib/docker-install.done tail -n 20 /var/log/docker-install.log - 3
Запустите первый контейнер
Проверьте версии и поднимите тестовый веб-сервер. Порт публикуется только на 127.0.0.1, поэтому на время проверки он не виден из Интернета.
Bashdocker --version && docker compose version docker run -d --name web -p 127.0.0.1:8080:80 nginx curl -I http://127.0.0.1:8080 - 4
Защитите сервер перед продакшеном
Поставьте перед сервисами обратный прокси (Caddy, Traefik или Nginx), который будет обслуживать YOUR_DOMAIN по HTTPS, и открывайте в Интернет только порты 80 и 443. Остальные порты оставляйте на 127.0.0.1: порты, опубликованные Docker, обходят ufw. И сразу настройте резервное копирование томов и файлов compose.
Bashdocker volume ls docker compose up -d
Сценарии использования Docker
Несколько изолированных сервисов
База PostgreSQL, веб-приложение и система мониторинга работают каждая в своём контейнере и описаны в одном файле
compose.yaml. Обновлять и перезапускать их можно по отдельности.Самохостинг готовых приложений
Многие open source проекты (n8n, Nextcloud, Gitea, Uptime Kuma и другие) публикуют Docker-образ и пример для Compose. VPS готов их принять без предварительной подготовки.
Сборка и тестирование образов
С помощью Buildx образы собираются на отдельной удалённой машине, и рабочий компьютер остаётся свободным. Это удобно для лёгкого CI или интеграционных тестов.
Staging, похожий на продакшен
Второй VPS с той же версией Docker и теми же файлами Compose даёт тестовое окружение, близкое к боевому, а администрировать его почти не приходится.
Частые вопросы о Docker
Рецепт ставит docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin и docker-compose-plugin из официального apt-репозитория Docker. Службы docker и containerd включаются в автозапуск. В Compose v2 используется команда docker compose, а не docker-compose.
Подробнее о Docker
Файрвол и опубликованные порты
Это самая частая ловушка. Когда вы публикуете порт через -p 8080:80, Docker записывает собственные правила iptables, и трафик проходит раньше правил ufw или firewalld. Поэтому ufw deny 8080 ничего не блокирует.
Есть два надёжных способа: привязать порт к локальному интерфейсу (-p 127.0.0.1:8080:80) и отдавать сервис через обратный прокси либо фильтровать в цепочке DOCKER-USER, которую Docker проверяет раньше своих правил. Первый способ проще, и в большинстве случаев его достаточно.
Группа docker и sudo
Членство в группе docker равносильно правам root на машине: контейнер может смонтировать файловую систему хоста. Рецепт никого в эту группу не добавляет. Если хотите работать под обычной учётной записью, добавьте её сами и переподключитесь.
Bashsudo usermod -aG docker USER
Логи контейнеров
Файл /etc/docker/daemon.json, созданный при выдаче, ограничивает каждый контейнер тремя файлами по 10 МБ. Он создаётся, только если его ещё не было. Чтобы изменить эти значения, отредактируйте файл и перезапустите демон. Новые настройки применяются только к контейнерам, созданным после перезапуска.
Bashsudo systemctl restart docker
Обновления
Репозиторий Docker прописан в /etc/apt/sources.list.d/docker.sources, поэтому новые версии приходят вместе с обычными обновлениями apt. Планируйте их на время, когда перезапуск демона допустим: без включённой опции live-restore он может прервать работу контейнеров.
Bashsudo apt update && sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io
Ubuntu 20.04
Docker больше официально не поддерживает Ubuntu 20.04. Рецепт всё равно пробует установить Docker, если репозиторий ещё отдаёт пакеты для этой версии, и пишет предупреждение в журнал. Для продакшена лучше выбрать Ubuntu 22.04, Ubuntu 24.04, Debian 12 или Debian 13: все они поддерживаются.
Резервные копии
Образы можно скачать заново, а данные нельзя. Сохраняйте именованные тома, монтируемые каталоги и файлы compose.yaml вместе с переменными окружения. Для базы данных лучше делать логический экспорт (pg_dump, mysqldump), чем копировать том «на горячую».
