// SSD VPS

Как установить и настроить Docker на VPS Linux: полное руководство по контейнерам

04 октября 2026 г. · by Alex M.

Как установить и настроить Docker на VPS Linux: полное руководство по контейнерам

Docker стал одним из самых популярных инструментов в мире DevOps и веб-разработки. Если у вас есть VPS SSD и вы хотите запускать изолированные, масштабируемые и легко управляемые приложения, Docker — идеальное решение. В этом руководстве вы узнаете, как шаг за шагом установить, настроить и использовать Docker на VPS Linux с Ubuntu 22.04.

Что такое Docker и зачем использовать его на VPS?

Docker — это платформа с открытым исходным кодом, которая позволяет упаковывать приложения вместе со всеми зависимостями в контейнер. Контейнеры изолированы друг от друга и от хост-системы, но используют общее ядро Linux.

Основные преимущества:

  • Портативность — один и тот же контейнер работает на любом сервере Linux
  • Изоляция — у каждого приложения своя среда без конфликтов пакетов
  • Эффективность — контейнеры потребляют значительно меньше ресурсов, чем виртуальные машины
  • Масштабируемость — можно запустить десятки экземпляров за считанные секунды

Для максимальной отдачи от Docker нужен сервер с быстрым хранилищем. VPS NVMe обеспечивает отличную скорость чтения/записи для образов Docker и томов, существенно сокращая время сборки и деплоя.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • VPS с Ubuntu 22.04 LTS (или Debian 11/12)
  • Доступ root или пользователь с правами sudo
  • Активное SSH-соединение
  • Не менее 1 ГБ RAM и 10 ГБ дискового пространства

Если у вас ещё нет сервера, вы можете заказать производительный VPS SSD прямо на сайте CLIQHOST — быстрое развёртывание и удобная панель управления.

Шаг 1: Обновите систему

Перед любой установкой обновите список пакетов и существующие пакеты:

sudo apt update && sudo apt upgrade -y

Перезагрузите сервер, если есть обновления ядра:

sudo reboot

Шаг 2: Установите Docker Engine

Рекомендуется использовать официальный репозиторий Docker, а не пакет из стандартных репозиториев Ubuntu (он может быть устаревшим).

2.1 Установите необходимые зависимости

sudo apt install -y ca-certificates curl gnupg lsb-release

2.2 Добавьте официальный GPG-ключ Docker

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

2.3 Добавьте репозиторий Docker

echo \
  "deb [arch=$(dpkg --print-architecture) \
  signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

2.4 Установите Docker Engine и компоненты

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.5 Проверьте установку

docker --version
# Docker version 26.x.x, build ...

sudo docker run hello-world

Если вы видите сообщение Hello from Docker! — установка прошла успешно.

Шаг 3: Настройте Docker без sudo

По умолчанию Docker требует sudo для каждой команды. Чтобы устранить это ограничение, добавьте своего пользователя в группу docker:

sudo usermod -aG docker $USER

Отключитесь и снова подключитесь по SSH, затем проверьте:

docker ps
# CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS   PORTS   NAMES

Внимание: Пользователи группы docker фактически имеют root-доступ к системе через контейнеры. Добавляйте только доверенных пользователей.

Шаг 4: Настройте автозапуск Docker

Убедитесь, что сервис Docker запускается автоматически при перезагрузке VPS:

sudo systemctl enable docker
sudo systemctl enable containerd

Проверьте статус:

sudo systemctl status docker

Шаг 5: Настройка демона Docker

Основной файл конфигурации Docker — /etc/docker/daemon.json. Вот рекомендуемая конфигурация для продакшн-VPS:

sudo nano /etc/docker/daemon.json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "live-restore": true
}

Пояснения:

  • log-driver + log-opts — ограничивает размер логов контейнеров (критично на VPS с ограниченным пространством)
  • storage-driver: overlay2 — наиболее производительный драйвер хранилища для Linux
  • live-restore: true — контейнеры остаются запущенными при перезапуске демона Docker

Применить изменения:

sudo systemctl restart docker

Шаг 6: Установите Docker Compose

Docker Compose позволяет определять и запускать многоконтейнерные приложения с помощью простого YAML-файла. Если вы установили docker-compose-plugin на шаге 2, он уже доступен:

docker compose version
# Docker Compose version v2.x.x

Альтернативно можно установить автономную версию:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
  -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Шаг 7: Первый проект Docker — приложение Nginx

Разберём практический пример: контейнер Nginx, обслуживающий статическую HTML-страницу.

7.1 Создайте структуру проекта

mkdir ~/myapp && cd ~/myapp
mkdir html
echo "<h1>Привет от Docker на VPS CLIQHOST!</h1>" > html/index.html

7.2 Создайте файл docker-compose.yml

nano docker-compose.yml
version: '3.9'

services:
  web:
    image: nginx:alpine
    container_name: my_nginx
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html:ro
    restart: unless-stopped

7.3 Запустите приложение

docker compose up -d

Откройте IP-адрес вашего VPS в браузере — вы увидите HTML-страницу.

7.4 Полезные команды Docker Compose

docker compose ps          # статус контейнеров
docker compose logs -f     # логи в реальном времени
docker compose down        # остановить и удалить контейнеры
docker compose restart     # перезапустить контейнеры

Шаг 8: Управление ресурсами — лимиты CPU и RAM

На VPS с ограниченными ресурсами важно ограничивать ресурсы на контейнер, чтобы один сервис не «съел» всё:

services:
  app:
    image: myapp:latest
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 256M
        reservations:
          memory: 128M

Или через команду:

docker run -d --name myapp \
  --cpus="0.5" \
  --memory="256m" \
  myapp:latest

Шаг 9: Безопасность Docker на VPS

Безопасность контейнеров — критически важная тема, особенно на серверах, открытых в интернет.

9.1 Не запускайте контейнеры от root

В Dockerfile укажите непривилегированного пользователя:

FROM node:18-alpine
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser

9.2 Используйте пользовательские сети Docker

Не оставляйте все контейнеры в стандартной сети bridge:

docker network create --driver bridge myapp_network

В docker-compose.yml:

networks:
  myapp_network:
    driver: bridge

9.3 Ограничьте открытые порты

Открывайте порты только на локальном интерфейсе, если внешний доступ не нужен:

ports:
  - "127.0.0.1:8080:80"

9.4 Регулярно обновляйте образы

docker compose pull    # загрузить новые образы
docker compose up -d   # перезапустить с новыми образами
docker image prune -f  # удалить устаревшие образы

Для продвинутой серверной безопасности наш сервис администрирования серверов включает аудит безопасности и регулярные обновления.

Шаг 10: Мониторинг контейнеров Docker

10.1 Статистика в реальном времени

docker stats

Команда отображает CPU, память, сеть и дисковый I/O для всех активных контейнеров.

10.2 Логи конкретного контейнера

docker logs my_nginx --tail 100 -f

10.3 Войти в активный контейнер

docker exec -it my_nginx sh

Управление образами и томами

Регулярно очищайте неиспользуемые ресурсы для освобождения дискового пространства:

# Удалить всё неиспользуемое (контейнеры, сети, образы, тома)
docker system prune -a --volumes

# Список существующих томов
docker volume ls

# Удалить конкретный том
docker volume rm имя_тома

На VPS NVMe от CLIQHOST операции ввода/вывода с образами Docker значительно быстрее по сравнению с обычными SSD — это особенно заметно в интенсивных CI/CD-пайплайнах.

Dockerfile — создайте собственный образ

Простой пример Dockerfile для Node.js-приложения:

FROM node:18-alpine

WORKDIR /app

COPY package*.json ./
RUN npm ci --only=production

COPY . .

EXPOSE 3000

CMD ["node", "server.js"]

Сборка и запуск:

docker build -t mynodeapp:1.0 .
docker run -d -p 3000:3000 --name mynodeapp mynodeapp:1.0

Практические советы для продакшна

  1. Всегда используйте конкретные теги для образов (nginx:1.25, не nginx:latest) — это гарантирует воспроизводимость
  2. Разделяйте данные и приложение — храните данные в томах Docker, а не в контейнере
  3. Настройте обратный прокси (Nginx или Traefik) перед контейнерами для SSL и маршрутизации
  4. Включите SSL для любого публично доступного сервиса — приобретите SSL-сертификат или используйте Let's Encrypt
  5. Регулярно делайте резервные копии томов Docker с важными данными
  6. Документируйте каждый сервис в docker-compose.yml с понятными комментариями

Заключение

Docker кардинально меняет способ деплоя и управления приложениями на VPS Linux. При правильной настройке вы получаете изолированную, портативную и легко масштабируемую среду — идеально для личных проектов, staging или продакшна.

Если вы только начинаете и ищете подходящий VPS для Docker, команда CLIQHOST готова помочь. Ознакомьтесь с предложениями VPS SSD и VPS NVMe — серверы оптимизированы для контейнерных нагрузок, с включённой технической поддержкой. Есть вопросы? Свяжитесь с нами — найдём подходящее решение вместе.

SHARE
// what clients say

What Our Clients Say

Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău