Как настроить Docker на виртуальном сервере: шаги для новичков

Как настроить 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

Если команда не распознана – проверьте путь: `/usr/bin/docker`.

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

Теперь откройте браузер и введите IP‑адрес вашего сервера. Вы увидите страницу “Welcome to 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

Вы увидите два контейнера – `web` и `db`.

8. Управление Docker

8.1. Остановить все контейнеры

docker stop $(docker ps -q)

8.2. Удалить остановленные контейнеры

docker rm $(docker ps -a -q)

8.3. Очистка неиспользуемых образов

docker image prune -a

9. Безопасность и рекомендации от Azerta.ru

1. **Обновляйте Docker регулярно** – новые версии исправляют уязвимости. 2. **Ограничьте доступ к контейнерам** – используйте `iptables` или `ufw` для управления входящими соединениями. 3. **Настройте резервное копирование** – экспортируйте важные данные из контейнеров в облачное хранилище (например, через rsync). 4. **Используйте Docker‑регистры от Azerta.ru** – они предлагают быстрый доступ к образам без задержек.

10. Что дальше?

Теперь вы умеете ставить и запускать Docker на VPS от Azerta.ru. С этой базой можно перейти к более продвинутым темам: настройке CI/CD, масштабированию с помощью Swarm или Kubernetes, интеграции с облачными сервисами.