Найти в Дзене
UFO.Hosting

Установка Docker на VPS: пошаговый гайд

Docker — удобный способ запускать приложения в изолированных контейнерах вместе со всеми зависимостями. Такой подход избавляет от конфликтов версий и позволяет быстро переносить сервисы между серверами. На VPS Docker особенно уместен: вы поднимаете нужный сервис за минуты, легко обновляете его до новой версии и при необходимости откатываетесь назад. Далее мы по пунктам разберем, как установить Docker на виртуальный сервер с Ubuntu. По промокоду DZEN вас ждёт скидка 10% на виртуальные и выделенные серверы от UFO.Hosting. Мощные процессоры, быстрые NVMe-диски и скорость до 10 Гбит/с — отличная база, чтобы ваши проекты работали без сбоев. Начните с подключения и базового обновления индекса пакетов: ssh user@IP_вашего_сервера sudo apt update Если система давно не обновлялась, можно аккуратно подтянуть обновления: sudo apt upgrade -y Иногда на сервере уже стоит docker.io из стандартных репозиториев. Он рабочий, но обычно без свежих возможностей. Лучше перейти на официальный Docker CE. sudo
Оглавление

Docker — удобный способ запускать приложения в изолированных контейнерах вместе со всеми зависимостями. Такой подход избавляет от конфликтов версий и позволяет быстро переносить сервисы между серверами.

На VPS Docker особенно уместен: вы поднимаете нужный сервис за минуты, легко обновляете его до новой версии и при необходимости откатываетесь назад. Далее мы по пунктам разберем, как установить Docker на виртуальный сервер с Ubuntu.

По промокоду DZEN вас ждёт скидка 10% на виртуальные и выделенные серверы от UFO.Hosting. Мощные процессоры, быстрые NVMe-диски и скорость до 10 Гбит/с — отличная база, чтобы ваши проекты работали без сбоев.

Шаг 1. Подключаемся и обновляем систему

Начните с подключения и базового обновления индекса пакетов:

ssh user@IP_вашего_сервера

sudo apt update

Если система давно не обновлялась, можно аккуратно подтянуть обновления:

sudo apt upgrade -y

Шаг 2. Удаляем возможные старые сборки (если были)

Иногда на сервере уже стоит docker.io из стандартных репозиториев. Он рабочий, но обычно без свежих возможностей. Лучше перейти на официальный Docker CE.

sudo apt remove -y docker docker-engine docker.io containerd runc || true

Эта команда просто удалит старые пакеты, если они есть. Данные контейнеров при этом не затрагиваются.

Шаг 3. Устанавливаем зависимости и добавляем официальный репозиторий Docker

Для начала подготовим систему, установим ключ и репозиторий. Команды ниже автоматически подставят ваш дистрибутив (Ubuntu или Debian) и его кодовое имя.

sudo apt install -y ca-certificates curl gnupg

# каталог для ключа

sudo install -m 0755 -d /etc/apt/keyrings

# GPG-ключ Docker

curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg \

| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

# репозиторий Docker

echo \

"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \

https://download.docker.com/linux/$(. /etc/os-release && echo "$ID") \

$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \

| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

Если сервер только что установлен и вы видите предупреждение про отсутствующий VERSION_CODENAME, сначала обновите систему (sudo apt update && sudo apt upgrade), затем повторите добавление репозитория.

Шаг 4. Устанавливаем Docker Engine и Compose

Наконец устанавливаем сам Docker, клиент, containerd и плагин Compose:

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

Включаем и запускаем службу:

sudo systemctl enable --now docker

Проверяем версии:

docker --version

docker compose version

Шаг 5. Тестовый запуск «Hello, World!»

Самый простой способ убедиться, что всё работает:

sudo docker run --rm hello-world

Если видите сообщение о успешном запуске — значит, установка прошла как надо.

Бонус: короткий чек-лист, если что-то пошло не так

→ Служба Docker не стартует? Посмотрите логи:

sudo systemctl status docker

journalctl -u docker --no-pager

→ Команды требуют sudo после добавления в группу? Выйдите из SSH и войдите снова, либо выполните newgrp docker.

→ Репозиторий не добавляется? Убедитесь, что корректно подставились $ID и $VERSION_CODENAME:

. /etc/os-release && echo "$ID $VERSION_CODENAME"

→ Порт занят? Узнайте, кто его использует:

sudo lsof -i :80