04 октября 2026 г. · by Alex M.
Docker стал одним из самых популярных инструментов в мире DevOps и веб-разработки. Если у вас есть VPS SSD и вы хотите запускать изолированные, масштабируемые и легко управляемые приложения, Docker — идеальное решение. В этом руководстве вы узнаете, как шаг за шагом установить, настроить и использовать Docker на VPS Linux с Ubuntu 22.04.
Docker — это платформа с открытым исходным кодом, которая позволяет упаковывать приложения вместе со всеми зависимостями в контейнер. Контейнеры изолированы друг от друга и от хост-системы, но используют общее ядро Linux.
Основные преимущества:
Для максимальной отдачи от Docker нужен сервер с быстрым хранилищем. VPS NVMe обеспечивает отличную скорость чтения/записи для образов Docker и томов, существенно сокращая время сборки и деплоя.
Перед началом убедитесь, что у вас есть:
sudoЕсли у вас ещё нет сервера, вы можете заказать производительный VPS SSD прямо на сайте CLIQHOST — быстрое развёртывание и удобная панель управления.
Перед любой установкой обновите список пакетов и существующие пакеты:
sudo apt update && sudo apt upgrade -y
Перезагрузите сервер, если есть обновления ядра:
sudo reboot
Рекомендуется использовать официальный репозиторий Docker, а не пакет из стандартных репозиториев Ubuntu (он может быть устаревшим).
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
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
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker --version
# Docker version 26.x.x, build ...
sudo docker run hello-world
Если вы видите сообщение Hello from Docker! — установка прошла успешно.
По умолчанию Docker требует sudo для каждой команды. Чтобы устранить это ограничение, добавьте своего пользователя в группу docker:
sudo usermod -aG docker $USER
Отключитесь и снова подключитесь по SSH, затем проверьте:
docker ps
# CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Внимание: Пользователи группы
dockerфактически имеют root-доступ к системе через контейнеры. Добавляйте только доверенных пользователей.
Убедитесь, что сервис Docker запускается автоматически при перезагрузке VPS:
sudo systemctl enable docker
sudo systemctl enable containerd
Проверьте статус:
sudo systemctl status 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 — наиболее производительный драйвер хранилища для Linuxlive-restore: true — контейнеры остаются запущенными при перезапуске демона DockerПрименить изменения:
sudo systemctl restart docker
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
Разберём практический пример: контейнер Nginx, обслуживающий статическую HTML-страницу.
mkdir ~/myapp && cd ~/myapp
mkdir html
echo "<h1>Привет от Docker на VPS CLIQHOST!</h1>" > html/index.html
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
docker compose up -d
Откройте IP-адрес вашего VPS в браузере — вы увидите HTML-страницу.
docker compose ps # статус контейнеров
docker compose logs -f # логи в реальном времени
docker compose down # остановить и удалить контейнеры
docker compose restart # перезапустить контейнеры
На 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
Безопасность контейнеров — критически важная тема, особенно на серверах, открытых в интернет.
В Dockerfile укажите непривилегированного пользователя:
FROM node:18-alpine
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser
Не оставляйте все контейнеры в стандартной сети bridge:
docker network create --driver bridge myapp_network
В docker-compose.yml:
networks:
myapp_network:
driver: bridge
Открывайте порты только на локальном интерфейсе, если внешний доступ не нужен:
ports:
- "127.0.0.1:8080:80"
docker compose pull # загрузить новые образы
docker compose up -d # перезапустить с новыми образами
docker image prune -f # удалить устаревшие образы
Для продвинутой серверной безопасности наш сервис администрирования серверов включает аудит безопасности и регулярные обновления.
docker stats
Команда отображает CPU, память, сеть и дисковый I/O для всех активных контейнеров.
docker logs my_nginx --tail 100 -f
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 для 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
nginx:1.25, не nginx:latest) — это гарантирует воспроизводимостьdocker-compose.yml с понятными комментариямиDocker кардинально меняет способ деплоя и управления приложениями на VPS Linux. При правильной настройке вы получаете изолированную, портативную и легко масштабируемую среду — идеально для личных проектов, staging или продакшна.
Если вы только начинаете и ищете подходящий VPS для Docker, команда CLIQHOST готова помочь. Ознакомьтесь с предложениями VPS SSD и VPS NVMe — серверы оптимизированы для контейнерных нагрузок, с включённой технической поддержкой. Есть вопросы? Свяжитесь с нами — найдём подходящее решение вместе.
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."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."