−25%

на річну оплату Windows, до 31.10. До тарифів

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.io з дистрибутива застарілий і не має плагіна Compose.
  • Відкривайте лише ті порти, які публікуєте. -p 8080:80 контейнера виставляє назовні 8080 — поєднуйте Docker із фаєрволом UFW.
  • Підбирайте розмір сервера під контейнери, а не під сам Docker, який легкий.

Що далі

Зі встановленим Docker можна самостійно хостити майже все. Дивіться самохостинг кількох сервісів за однією IP або конкретні збірки на Docker, як-от сервер віддаленого робочого столу RustDesk і моніторинг Uptime Kuma. Щоб виставити домен і HTTPS попереду, дивіться як налаштувати реверс-проксі nginx.

Часті питання

Використовувати '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), піднімаються автоматично. Без політики перезапуску контейнер після перезавантаження лишається зупиненим.

Коментарі

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

Залишити коментар

Коментарі проходять модерацію перед публікацією.