Как настроить Docker на виртуальном сервере: шаги для новичков
Если вы только начинаете знакомство с контейнерами и решили, что виртуальный сервер — это то, о чем стоит поговорить, то вы попали в нужное место. Здесь я расскажу, как развернуть Docker на VPS от Azerta.ru, показать реальные ошибки, которые могут возникнуть, и продемонстрировать простые решения. Всё, что вам понадобится – это базовый доступ к серверу (SSH), немного терпения и готовность экспериментировать.1. Подготовка сервера
1.1. Что такое виртуальный сервер от Azerta.ru?
Azerta.ru предлагает гибкие VPS‑решения: вы арендуете выделенный набор ресурсов – процессор, память, дисковое пространство и IP‑адрес. Это как арендовать собственный компьютер в облаке. Вы управляете им полностью, а провайдер обеспечивает стабильность работы 24/7.
Вы думаете, что настройка сервера это сложная задача? Не так! С правильными командами всё будет быстро и без лишних усилий.
1.2. Вход по SSH
Перед тем как начать работать с Docker, убедитесь, что можете подключиться к серверу:
ssh root@(IP_сервера)
Если вы впервые подключаетесь, возможно, появится предупреждение о неизвестном ключе. Просто подтвердите соединение.
Ошибка: Permission denied (publickey).
Решение: Убедитесь, что ваш публичный ключ добавлен в/root/.ssh/authorized_keys
. Если используете пароль – включите аутентификацию паролем в файле/etc/ssh/sshd_config
.
2. Обновляем систему
Перед установкой любого ПО всегда обновляем пакеты:
apt update && apt upgrade -y
Ошибка: E: Could not get lock /var/lib/dpkg/lock-frontend
.
Решение: Дождитесь завершения другой установки или уберите блокирующий файл /var/cache/apt/archives/lock
.
3. Устанавливаем Docker
3.1. Выбираем правильный пакет
Ниже пример, как правильно установить последнюю стабильную версию Docker CE (Community Edition) на Ubuntu 20.04.
apt remove docker docker-engine docker.io containerd runc -y # убираем старые версии
apt install apt-transport-https ca-certificates curl gnupg lsb-release -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install docker-ce docker-ce-cli containerd.io -y
Ошибка: E: Repository 'https://download.docker.com/linux/ubuntu bionic Release' does not have a Release file.
Решение: Убедитесь, что используете правильную версию Ubuntu (bionic – 18.04, focal – 20.04). Замените в строке $(lsb_release -cs)
нужным кодовым именем.
3.2. Проверяем установку
docker --version
Вы должны увидеть что‑то вроде:
Docker version 23.0.1, build abcdefg
4. Добавляем пользователя в группу docker
Для того чтобы запускать Docker без sudo
, добавим ваш пользователь (или root) в группу docker
:
usermod -aG docker $USER
Важно: После изменения группы нужно выйти из SSH и войти снова, иначе права не обновятся.
Проверьте:
groups $USER | grep docker
5. Тестируем Docker
5.1. Запускаем Hello‑World контейнер
docker run hello-world
Вы должны увидеть приветственное сообщение от Docker, подтверждающее успешную работу:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
Ошибка: Cannot connect to the Docker daemon at unix:///var/run/docker.sock
.
Решение: Убедитесь, что сервис запущен:systemctl status docker
. Если он остановлен – включите:systemctl start docker
.
5.2. Запускаем простой nginx контейнер
docker run -d --name mynginx -p 80:80 nginx
6. Настраиваем Docker Compose (необязательно)
Docker Compose позволяет управлять несколькими контейнерами через YAML‑файл.
apt install docker-compose -y
Проверяем:
docker-compose --version
Ошибка: Command 'docker-compose' not found
.
Решение: Если пакет недоступен в репозитории, скачайте напрямую:
curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
7. Создаём простой docker‑compose файл
В корне проекта создайте docker-compose.yml
:
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
Запускаем:
docker-compose up -d
Проверяем статус:
docker ps
8. Управление Docker
8.1. Остановить все контейнеры
docker stop $(docker ps -q)
8.2. Удалить остановленные контейнеры
docker rm $(docker ps -a -q)
8.3. Очистка неиспользуемых образов
docker image prune -a