EQVPS

Как установить Docker на VPS

Установите Docker Engine и плагин Compose на Ubuntu правильно — из официального репозитория Docker, а не из устаревшего пакета дистрибутива — затем запустите тестовый контейнер и включите автозапуск при загрузке. Несколько команд до рабочего контейнерного хоста.

Docker упаковывает приложение и всё необходимое для него в контейнер, который одинаково работает где угодно — самый чистый способ самостоятельно хостить сервисы на VPS. Единственная загвоздка в Ubuntu и Debian в том, что версия из собственного репозитория дистрибутива часто старая и идёт без современного плагина Compose. Вместо этого установите из официального репозитория Docker. Вот весь процесс.

1. Настройте официальный репозиторий Docker (Ubuntu)

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

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

2. Установите Docker Engine и Compose

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

3. Убедитесь, что служба запущена и включена на автозапуск

sudo systemctl enable --now docker
sudo docker run --rm hello-world

Контейнер hello-world скачивается, печатает сообщение об успехе и завершает работу — доказательство того, что движок работает.

4. (Опционально) Запуск Docker без sudo

sudo usermod -aG docker $USER
# выйдите и войдите заново, чтобы изменение группы вступило в силу

Делайте это только для пользователя, которому доверяете — доступ к группе docker фактически равен root на хосте.

Быстрый реальный контейнер

docker run -d --restart unless-stopped -p 8080:80 --name web nginx
# откройте http://YOUR.SERVER.IP:8080

--restart unless-stopped — это то, что заставляет контейнер подниматься после перезагрузки.

Честные предостережения

Что дальше

С установленным Docker можно самостоятельно хостить почти что угодно. Смотрите самохостинг нескольких сервисов за одним IP или конкретные сборки на Docker, например сервер удалённого рабочего стола RustDesk и мониторинг Uptime Kuma. Чтобы поставить перед этим домен и HTTPS, смотрите как настроить nginx reverse proxy.

Частые вопросы

Использовать 'apt install docker.io' или репозиторий Docker?

Для актуальной версии используйте официальный репозиторий Docker (шаги ниже). Пакет docker.io из дистрибутива удобен, но часто отстаёт по версии, а современный плагин 'docker compose' поставляется вместе с официальными пакетами. Если нужен просто одноразовый тестовый сервер, docker.io тоже подойдёт.

В чём разница между 'docker compose' и 'docker-compose'?

Старый 'docker-compose' был отдельным инструментом на Python (через дефис). Текущий — 'docker compose' (через пробел) — плагин, встроенный в Docker. Используйте плагин; отдельный инструмент устарел. Установите docker-compose-plugin, как показано ниже, и вы его получите.

Как запускать Docker без ввода sudo каждый раз?

Добавьте своего пользователя в группу docker: 'sudo usermod -aG docker $USER', затем выйдите и войдите заново. Учтите, что это фактически даёт root-доступ через контейнеры, так что делайте это только для доверенного пользователя на своём собственном сервере.

Сколько RAM нужно Docker?

Сам Docker лёгкий; важно то, какие контейнеры вы запускаете. Одно-два небольших приложения комфортно помещаются на сервере в 1 ГБ, а более тяжёлые стеки (базы данных, несколько сервисов) требуют больше запаса. Подбирайте размер VPS под нагрузку, а не под сам Docker.

Переживут ли контейнеры перезагрузку?

Только если вы это настроите. Служба Docker включается на автозапуск шагами ниже, а контейнеры, запущенные с '--restart unless-stopped' (или такой же политикой в Compose), поднимутся автоматически. Без политики перезапуска контейнер после перезагрузки останется выключенным.

Комментарии

Пока нет комментариев. Будьте первым.

Оставить комментарий

Комментарии проходят модерацию перед публикацией.