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.

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

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

Коментарі

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

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

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