Гайд по Docker: Повне керівництво по роботі з контейнерами на VPS
Востаннє змінено 17 Вересня 2025 в
12 min read
18
0
Spartak Itskovich
Game Content Writer
Docker стає все більш популярним інструментом для розгортання застосунків завдяки своїй простоті та гнучкості. На VPS (Virtual Private Server) Docker надає особливі переваги, дозволяючи легко керувати складними застосунками та оптимізувати використання ресурсів. Цей комплексний гайд охоплює три ключові аспекти роботи з Docker на VPS: початок роботи, розгортання багатоконтейнерних застосунків та оптимізацію продуктивності. Кожен розділ містить практичні поради та реальні приклади, що допоможуть вам впевнено працювати з Docker на вашому VPS сервері з Debian 12.
Getting Started with Docker on VPS
Встановлення Docker на Debian 12 VPS
Перш ніж починати роботу з контейнерами, потрібно правильно встановити Docker на ваш VPS з Debian 12. Процес встановлення на Debian дещо відрізняється від Ubuntu, але залишається простим.
На Debian 12 Docker Compose встановлюється автоматично як плагін разом з основним пакетом Docker. Це означає, що ви використовуватимете команду `docker compose` (з пробілом) замість старої `docker-compose`.
Додайте вашого користувача до групи docker (опціонально):
sudo usermod -aG docker $USER
Перевірте, чи Docker працює правильно:
docker run hello-world docker compose version
Запуск першого контейнера на Debian 12 VPS
Після встановлення Docker можна запустити ваш перший контейнер. Давайте почнемо з простого веб-сервера nginx:
docker run -d -p 80:80 --name my-nginx nginx:latest
Ця команда робить наступне:
`-d` - запускає контейнер у фоновому режимі
`-p 80:80` - перенаправляє трафік з порту 80 VPS на порт 80 контейнера
`--name my-nginx` - дає контейнеру зрозуміле ім'я
`nginx:latest` - використовує останній образ nginx
Тепер ваш веб-сервер доступний за IP-адресою вашого VPS. Відкрийте браузер та введіть IP вашого сервера - ви побачите стартову сторінку nginx.
Використання Docker Hub на Debian 12
Docker Hub - це публічний реєстр образів Docker, де можна знайти готові образи для різноманітних застосунків. Для пошуку образів використовуйте команду:
docker search nginx
Щоб завантажити образ:
docker pull nginx:latest
Переглянути всі завантажені образи на вашому Debian 12 VPS:
docker image ls
Основні команди для керування контейнерами
Ось найважливіші команди, які ви будете використовувати щодня на VPS з Debian 12:
**Перегляд контейнерів:**
docker ps # Активні контейнери docker ps -a # Всі контейнери
docker logs container-name # Логи контейнера docker stats # Статистика використання ресурсів
Як зробити контейнер доступним за IP VPS
Щоб ваші контейнери були доступні ззовні через IP вашого VPS з Debian 12, потрібно правильно налаштувати порти. Використовуйте прапорець `-p` для маппінгу портів:
docker run -d -p 8080:80 nginx # VPS:8080 -> контейнер:80 docker run -d -p 3000:3000 my-app # VPS:3000 -> контейнер:3000
Для декількох портів:
docker run -d -p 80:80 -p 443:443 nginx
На Debian 12 переконайтеся, що firewall дозволяє трафік на потрібних портах:
Deploying Multi-Container Apps on VPS (Docker Compose)
Навіщо VPS з Docker для складних проєктів
Сучасні веб-застосунки рідко складаються з одного сервісу. Зазвичай потрібна база даних, веб-сервер, можливо кеш або черга повідомлень. Керування кожним контейнером окремо на VPS швидко стає складним завданням. Docker Compose вирішує цю проблему, дозволяючи описати всю архітектуру в одному файлі.
На Debian 12 Docker Compose встановлюється автоматично як плагін Docker, що означає використання команди `docker compose` замість окремої утиліти.
Переваги використання Docker Compose на Debian 12 VPS:
Простота розгортання всього застосунку однією командою
Автоматичне створення мереж між сервісами
Легке масштабування окремих компонентів
Версіонування конфігурації разом з кодом
Перевірка Docker Compose на Debian 12
Оскільки Docker Compose встановлюється разом з Docker на Debian 12, перевірте його наявність:
docker compose version
Якщо команда працює, ви готові до створення багатоконтейнерних застосунків на вашому VPS.
Приклад docker-compose.yml (WordPress + MySQL) на Debian 12 VPS
Ось практичний приклад розгортання WordPress з MySQL на VPS з Debian 12:
Як обмежити ресурси контейнерів у Debian 12 VPS (CPU, RAM)
Правильне обмеження ресурсів критично важливе на VPS, оскільки ресурси обмежені. Без лімітів один контейнер може спожити всі ресурси сервера.
**Обмеження через docker run на Debian 12:**
# Обмеження пам'яті до 512MB та CPU до 1 ядра docker run -d --memory="512m" --cpus="1.0" nginx # Обмеження swap-памяті docker run -d --memory="512m" --memory-swap="1g" my-app
**Моніторинг використання ресурсів на Debian 12:**
docker stats # Реальний час docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"
Типові ресурсні лімити для Docker контейнерів на VPS
Оптимізація роботи з томами й кешем на Debian 12
Правильна робота з volume на Debian 12 VPS суттєво впливає на продуктивність:
**Named volumes для важливих даних:**
volumes: db_data: driver: local app_cache: driver: local services: db: volumes: - db_data:/var/lib/mysql app: volumes: - app_cache:/app/cache
**Bind mounts для development на Debian 12 VPS:**
services: app: volumes: - ./app:/var/www/html - /etc/localtime:/etc/localtime:ro # Синхронізація часу
**Оптимізація Dockerfile для кешування на Debian 12:**
FROM node:16-alpine WORKDIR /app # Спочатку копіюємо package.json для кешування залежностей COPY package*.json ./ RUN npm install # Потім копіюємо код COPY . . EXPOSE 3000 CMD ["npm", "start"]
Налаштування мережі на Debian 12 VPS для стабільної роботи
Правильна мережева конфігурація забезпечує стабільну роботу контейнерів на Debian 12 VPS:
**Створення окремих мереж для безпеки:**
networks: frontend: driver: bridge backend: driver: bridge internal: true # Тільки для внутрішнього використання services: web: networks: - frontend - backend db: networks: - backend # База недоступна ззовні
services: app: user: "1000:1000" # Не запускайте як root read_only: true # Файлова система тільки для читання tmpfs: - /tmp cap_drop: - ALL cap_add: - NET_BIND_SERVICE
**Регулярне очищення на Debian 12 VPS:**
# Видалення невикористаних контейнерів, мереж, образів docker system prune -a --volumes # Автоматизація через cron на Debian 12 0 2 * * 0 docker system prune -f
**Специфічні налаштування для Debian 12:**
# Перевірка служби Docker sudo systemctl status docker sudo systemctl enable docker # Налаштування автозапуску після перезавантаження VPS sudo systemctl enable docker.service sudo systemctl enable containerd.service
Цей комплексний гайд охоплює всі основні аспекти роботи з Docker на VPS з Debian 12 - від початкового встановлення до складних production-розгортань. Головною відмінністю є використання вбудованого Docker Compose плагіна та команди `docker compose` замість окремої утиліти. Правильне використання цих технік допоможе вам створити надійну, масштабовану та ефективну інфраструктуру для ваших застосунків на Debian 12 VPS.
Оцініть статтю за 5-бальною шкалою
Будь першим, хто оцінить цю новину!
Найшли помилку? Виділіть її та натисніть Ctrl + Enter, щоб повідомити нас.