Установка Docker и Docker Compose на VPS. Контейнеры за 5 минут
Зачем Docker на VPS
Docker позволяет запускать приложения в изолированных контейнерах. Каждый контейнер работает как мини-сервер со своим окружением и не конфликтует с другими.
Что это даёт на практике:
- Простая установка: одна команда вместо 20 шагов настройки
- Изоляция: приложения не мешают друг другу
- Портативность: контейнер работает одинаково на любом сервере
- Простое обновление:
docker pull+ перезапуск - Лёгкий откат: вернуться к предыдущей версии за секунды
Установка Docker на Ubuntu / Debian
Быстрая установка (рекомендуется)
curl -fsSL https://get.docker.com | bash
Проверка установки
docker --version
docker run hello-world
Запуск Docker без sudo
usermod -aG docker $USER
Перелогиньтесь после этой команды.
Установка Docker Compose
Docker Compose уже входит в современные версии Docker. Проверьте:
docker compose version
Если не установлен:
apt install docker-compose-plugin -y
Основные команды Docker
Управление контейнерами
# Запуск контейнера
docker run -d --name myapp -p 8080:80 nginx
# Список запущенных контейнеров
docker ps
# Список всех контейнеров (включая остановленные)
docker ps -a
# Остановка контейнера
docker stop myapp
# Запуск остановленного контейнера
docker start myapp
# Перезапуск
docker restart myapp
# Удаление контейнера
docker rm myapp
# Логи контейнера
docker logs myapp
# Войти внутрь контейнера
docker exec -it myapp bash
Управление образами
# Скачать образ
docker pull nginx
# Список образов
docker images
# Удалить образ
docker rmi nginx
# Удалить неиспользуемые образы, контейнеры и сети
docker system prune -a
Docker Compose. Запуск нескольких сервисов
Docker Compose позволяет описать все сервисы в одном файле docker-compose.yml и запустить их одной командой.
Пример: Nginx + MySQL + PHP
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- php
php:
image: php:8.3-fpm
volumes:
- ./html:/var/www/html
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: SecurePassword123
MYSQL_DATABASE: mydb
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
Команды Docker Compose
# Запуск всех сервисов
docker compose up -d
# Остановка всех сервисов
docker compose down
# Пересборка и запуск
docker compose up -d --build
# Логи всех сервисов
docker compose logs -f
# Статус сервисов
docker compose ps
Полезные Docker-образы для VPS
| Образ | Описание |
|---|---|
nginx |
Веб-сервер |
mysql / mariadb |
База данных |
postgres |
PostgreSQL |
redis |
Кэш и очереди |
portainer/portainer-ce |
Веб-панель управления Docker |
traefik |
Обратный прокси с автоматическим SSL |
ghcr.io/mhsanaei/3x-ui |
Панель 3X-UI |
Установка Portainer. Веб-панель для Docker
Portainer позволяет управлять контейнерами через браузер:
docker run -d \
--name portainer \
--restart=unless-stopped \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce
Откройте https://ваш_ip:9443 и создайте администратора.
Docker потребляет дополнительную память. На VPS с 1 ГБ RAM запускайте не более 2-3 лёгких контейнеров. Для серьёзных проектов берите тариф с 4+ ГБ RAM.