Перейти на сайт
База знаний/Руководства/Установка Docker и Docker Compose на VPS. Контейнеры за 5 минут

Установка 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.