Блог

Інструкції, посібники й новини про продукт.

Розробникам

Що таке Docker і як користуватися ним на VPS?

3 листопада 2026 5 хв читання
Поділитися записом

Docker — це інструмент, що запускає застосунок разом з усім, що йому потрібно, в ізольованому пакеті під назвою контейнер. На VPS використання Docker означає, що ви запускаєте застосунок із готового пакета, а не встановлюєте його по частинах на сервері. Налаштування й видалення займають кілька команд, а застосунки не заважають налаштуванням один одного.

На відміну від віртуальної машини, контейнер не має власної операційної системи. Він спільно використовує ядро сервера, тому запускається за лічені секунди й споживає мало пам’яті. Натомість його ізоляція не така сильна, як у віртуальної машини.

Чотирьох термінів досить для початку

ТермінЩо він означає
ОбразГотовий пакет застосунку. Його завантажують із реєстру, наприклад Docker Hub.
КонтейнерЗапущена копія, створена з образу.
ТомПостійне сховище, що зберігає ваші дані, навіть коли контейнер видалено.
ComposeІнструмент, що описує кілька контейнерів в одному файлі compose.yaml і керує ними однією командою.

Видалення контейнера видаляє файли всередині нього. Усе, що має вціліти, як-от базу даних, монтуйте на том або в папку сервера.

Як установити Docker на Ubuntu?

Спершу підключіться до сервера через SSH. Пакет docker.io із репозиторіїв Ubuntu працює, і сервер Docker від Seturack з готовим встановленням використовує саме його. Для найновішої версії скористайтеся власним репозиторієм apt від Docker. Згідно з офіційною документацією Docker, пакети Ubuntu, як-от docker.io і docker-compose, конфліктують із власними пакетами Docker, тож спершу видаліть їх, якщо вони встановлені.

  1. Виконайте розділ «apt repository» на сторінці встановлення Docker для Ubuntu, щоб додати ключ підпису й джерело репозиторію. Виконуйте звідти команди без змін, бо вони міняються від випуску до випуску.
  2. Установіть пакети: sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  3. Перевірте, що служба працює: sudo systemctl status docker
  4. Запустіть тестовий контейнер: sudo docker run --rm hello-world

Якщо ви бачите вітальне повідомлення, Docker готовий. В Ubuntu і Debian служба запускається сама під час кожного завантаження.

Ваш перший контейнер

Запустіть вебсервер однією командою:

docker run -d --name web --restart unless-stopped -p 80:80 nginx:1.30

-d запускає контейнер у фоновому режимі. --restart unless-stopped запускає його знову, коли сервер перезавантажується або контейнер аварійно завершується. -p 80:80 з’єднує порт 80 сервера з контейнером. nginx:1.30 — назва образу й тег версії. Тег наведено лише як приклад, тож виберіть актуальний стабільний тег на офіційній сторінці Nginx у Docker Hub. Відкрийте IP-адресу сервера в браузері, і ви побачите вітальну сторінку Nginx. Щоб видалити його, виконайте docker rm -f web.

Змонтуйте том для постійних даних, наприклад -v sitedata:/usr/share/nginx/html. Томи можна переглянути командою docker volume ls. Служби в тому самому файлі compose.yaml звертаються одна до одної за назвою служби, тож ваш застосунок підключається до бази даних, наприклад, як до db.

Коли контейнерів кілька, складіть їх усі в файл compose.yaml і виконайте docker compose up -d у папці цього файлу. Ключі image, restart, ports і volumes у файлі відповідають прапорцям вище. Стан перевіряють командою docker compose ps, журнали читають через docker compose logs -f, а все вимикають командою docker compose down.

Команди, якими ви користуватиметеся щодня

КомандаПризначення
docker psПоказує запущені контейнери. Додайте -a, щоб побачити й зупинені.
docker logs -f webСтежить за журналом контейнера web наживо.
docker exec -it web shВідкриває оболонку всередині контейнера.
docker statsПоказує використання CPU і пам’яті контейнерами.
docker compose pull і docker compose up -dЗавантажує новий образ і замінює контейнер новим. Дані в томах зберігаються.

Перед оновленням прочитайте примітки до випуску застосунку й самі підніміть тег версії у файлі compose. Сенс фіксації тега в тому, що оновлення стає рішенням, а не випадковістю.

Чотири речі, на які варто звернути увагу

  • Docker оминає правила ufw. Згідно з офіційною документацією, порти, які публікує Docker, відкриваються раніше, ніж спрацьовують правила ufw. Правило ufw, що забороняє такий порт, нічого не змінює. Службу, яка не повинна бути доступна ззовні, прив’яжіть лише до локальної адреси, наприклад -p 127.0.0.1:5432:5432. Контейнери в тій самій мережі Docker і так бачать один одного, тож базу даних публікувати не потрібно.
  • Тег latest. Якщо ви не вкажете тег, завантажується latest. Під час наступного завантаження ваш застосунок може перескочити на несподівану версію. Указуйте конкретний тег і плануйте оновлення самі.
  • Група docker означає root. Додавання користувача до групи docker дає йому привілеї рівня root (офіційна документація). Додавайте лише ті акаунти, яким довіряєте.
  • Журнали й образи заповнюють диск. Типове налаштування журналів Docker не обмежує розмір. Задайте обмеження для контейнера: --log-opt max-size=10m --log-opt max-file=3. docker system df показує використання диска, а docker image prune видаляє образи без тегів.

Docker чи пряме встановлення?

Docker допомагає, коли на одному сервері працює кілька застосунків, яким потрібні різні версії, коли ви хочете спробувати застосунок і чисто його видалити або коли розробник публікує офіційний образ. Для простого випадку, наприклад одного сайту WordPress, підійде й пряме встановлення. Docker — додатковий шар: оновлювати його, стежити за ним і копіювати томи доведеться вам. Якщо ви не впевнені, почніть з одного невеликого застосунку. Переносити все на Docker одразу не обов’язково.

Docker у Seturack уже готовий

Якщо ви не хочете встановлювати Docker самі, можна замовити сервер із застосунком Docker. Docker і Compose уже встановлені, а налаштування займає близько 2,5 хвилини. Брандмауер (ufw) увімкнено, ззовні відкритий лише порт SSH, fail2ban захищає SSH, а журнали контейнерів обмежено 3 файлами по 10 МБ на контейнер. У застосунку немає вебінтерфейсу, тому панель не показує адреси сайту. Описана вище пастка з портами діє й тут. Щоб почати з готового сервера, див. сторінку Docker VPS.

Готове до роботи в Seturack: Portainer, Coolify, Dokploy.

Коментарі0

Коментарів поки немає

Поділіться своєю думкою першим.

Долучайтеся до обговорення

Будь ласка, увійдіть або зареєструйтеся, щоб залишити коментар.

Не пропускайте нові записи

Отримуйте наші свіжі інструкції, посібники та новини продукту на пошту.

Ви підписалися на нашу розсилку.