Установка Docker Engine и Docker Compose на Ubuntu 22.04 из официального репозитория.
Обновлено 05.07.2026
volrix.pm поставляется как набор контейнеров и запускается через Docker Compose. Перед установкой приложения на сервер нужно один раз поставить Docker. Эта страница - подготовка чистого сервера Ubuntu 22.04. Если Docker уже стоит, переходите сразу к разделу Разворачивание volrix.pm.
Выполняйте команды по одной. Несколько строк, вставленных блоком, слипаются в консоли, и часть не отрабатывает.
volrix.pm разворачивается на одном сервере под Docker: PostgreSQL, приложение (в нем же встроенный планировщик фоновых задач) и веб-интерфейс. Файлы по умолчанию хранятся в самой базе; при желании можно подключить внешнее хранилище (S3, сетевую папку, WebDAV). Ниже - минимальная конфигурация и рекомендации по числу пользователей.
**Минимальная конфигурация** - для демонстрации и пилота (примерно до 20 пользователей):
**Рекомендуемая конфигурация** по числу пользователей:
Старые или сторонние сборки Docker конфликтуют с официальными. Команда снимает их. Безопасна, даже если ничего не установлено.
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove -y $pkg; done
Обновляем список пакетов и ставим утилиты, нужные для добавления репозитория Docker (работа с сертификатами и загрузка по сети).
sudo apt-get update
sudo apt-get install -y ca-certificates curl
Сюда положим GPG-ключ, которым подписаны пакеты Docker - чтобы система доверяла репозиторию.
sudo install -m 0755 -d /etc/apt/keyrings
Скачиваем ключ и делаем его читаемым. Без корректного ключа следующий шаг выдаст ошибку про подпись.
sudo curl -fSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Проверьте: файл существует, ненулевого размера, первая строка -----BEGIN PGP PUBLIC KEY BLOCK-----. Если нет - повторите шаг, дальше не идите.
Добавляем официальный репозиторий в список источников. Версия Ubuntu (jammy для 22.04) подставляется автоматически.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Теперь система видит пакеты Docker. Ошибок про подпись (NO_PUBKEY) быть не должно - если есть, проблема в ключе из шага 4.
Ставим движок, командную строку и плагин Compose v2 одной командой.
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
На свежем сервере apt может быть занят фоновым автообновлением, и установка выдаст ошибку про блокировку: «Could not get lock /var/lib/dpkg/lock-frontend ... held by process ... (unattended-upgr)». Это нормально и временно. Не удаляйте файл блокировки вручную - можно повредить систему. Дождитесь, пока автообновление закончится (обычно 1-3 минуты), и повторите команду установки. Удобно подождать в цикле, затем повторить шаг 7:
while sudo fuser /var/lib/dpkg/lock-frontend >/dev/null 2>&1; do echo 'apt занят, ждем...'; sleep 5; done
Тестовый контейнер и версии. Если hello-world отработал и команды показали версии - Docker готов.
sudo docker run hello-world
docker compose version
Compose вызывается как docker compose (два слова, без дефиса). Старый docker-compose на Python устарел и здесь не ставится.
Чтобы вызывать docker без sudo, добавьте своего пользователя в группу docker. Удобно, но эта группа дает права уровня root - давайте ее только доверенным пользователям.
sudo usermod -aG docker $USER
После этого выйдите из сессии и зайдите заново (или выполните newgrp docker) - иначе членство в группе не применится.
Чтобы Docker поднимался сам после перезагрузки сервера, включите его службы в автозапуск. Обычно служба стартует сразу после установки; команды ниже закрепляют это поведение.
sudo systemctl enable docker
sudo systemctl enable containerd
Если служба не запущена - стартуйте вручную: sudo systemctl start docker.
Если шаг не пошел или нужна другая ОС - официальные инструкции Docker:
Установка одним скриптом после подготовки