Будни 9.30-18.30 (495)  504-73-23
19.09.24

Настройка удаленного сервера для работы с Docker

 

Содержание:

 

 

Перед тем как запускать контейнеры, потребуется привести хост в подходящее состояние. Начать стоит с проверки текущей версии ядра: минимально допустимая – 3.10, но желательно использовать 5.x или выше. Узнать версию можно командой uname -r. Если она устарела, придётся обновить систему или сменить дистрибутив.

 

Следующим шагом будет установка вспомогательных компонентов. На дистрибутивах на базе Debian потребуются пакеты apt-transport-https, ca-certificates, curl, gnupg и lsb-release. Они обеспечивают загрузку и проверку официальных репозиториев. В CentOS и RHEL стоит использовать yum-utils и активировать модуль container-tools.

 

Рекомендуется создать отдельного пользователя с ограниченными правами и предоставить ему доступ к групповым возможностям контейнерного окружения. Это повышает защищённость и снижает риск случайных изменений в системных директориях. Назначение прав осуществляется через usermod -aG.

 

Также стоит предусмотреть базовые настройки файрвола. Порты 2375 и 2376 часто используются по умолчанию, но открывать их без шифрования недопустимо. Надёжнее использовать проксирование через SSH или VPN, чтобы исключить несанкционированные подключения.

 

Для хранения образов и томов понадобится дополнительное дисковое пространство. Лучше выделить отдельный раздел или использовать подключённый диск, чтобы избежать переполнения основной файловой системы. Каталог по умолчанию – /var/lib/.

 

Подготовка удаленного сервера: установка необходимых компонентов

 

Для стабильного функционирования контейнерной среды потребуется минимальный набор утилит и инструментов. В таблице приведён перечень пакетов и их назначение.

 

 

Пакет

Цель

Команда установки (Debian/Ubuntu)

curl

Загрузка скриптов и взаимодействие с API

apt install -y curl

ca-certificates

Проверка SSL-сертификатов

apt install -y ca-certificates

gnupg

Работа с ключами GPG для проверки репозиториев

apt install -y gnupg

lsb-release

Определение версии системы для подбора репозиториев

apt install -y lsb-release

software-properties-common

Добавление внешних источников пакетов

apt install -y software-properties-common

apt-transport-https

Поддержка HTTPS в APT

apt install -y apt-transport-https

 

После установки вышеуказанных утилит следует убедиться в наличии поддержки cgroups и ядра с версией не ниже 5.4. Проверка выполняется командой uname -r. Для использования современных функций ядра желательно наличие systemd.

 

Проверить поддержку cgroups можно с помощью команды:

 

ls /sys/fs/cgroup/

 

 

Также потребуется открыть порты, если планируется доступ к контейнерам по сети. Обычно это 2375 (без TLS) или 2376 (с TLS). Рекомендуется использовать фаервол ufw или iptables для точечной настройки правил доступа.

 

Настройка SSH-доступа и проверка соединения с сервером

 

Создайте ключевую пару с помощью команды ssh-keygen -t ed25519. Укажите путь к файлу и при необходимости задайте пароль. По завершении появятся два файла: открытый ключ с расширением .pub и закрытый – без расширения.

 

 

Скопируйте открытый ключ на целевую машину командой ssh-copy-id user@ip. Если она недоступна, выполните ручное добавление: вставьте содержимое id_ed25519.pub в файл ~/.ssh/authorized_keys на принимающей стороне. Убедитесь, что права на каталог .ssh – 700, а на сам файл – 600.

 

Для упрощения подключений настройте файл ~/.ssh/config. Пример:

 

Host docker-host

HostName ip

User user

IdentityFile ~/.ssh/id_ed25519

 

Теперь подключение осуществляется командой ssh docker-host. Это избавляет от необходимости каждый раз указывать адрес, пользователя и путь к ключу.

 

Docker на удаленном сервере от ZSC – гибкая и управляемая среда для ваших контейнеров

 

Компания ZSC предоставляет готовое решение по развертыванию и сопровождению инфраструктуры на базе Docker на удаленном сервере. Это оптимальный выбор для разработчиков, DevOps-специалистов и команд, которым необходима стабильная, масштабируемая и безопасная среда для контейнеризации приложений, микросервисов и CI/CD процессов.

 

Мы подбираем и настраиваем сервер под конкретные задачи – от тестовых стендов до продакшн-инфраструктур, с полной интеграцией Docker, Docker Compose, а при необходимости – и с оркестрацией через Swarm или подключением к внешним Kubernetes-кластерам. Вся работа происходит на удаленном VDS-сервере в российском или зарубежном дата-центре, в зависимости от ваших требований к юрисдикции и скорости доступа.

 

Мы обеспечиваем защищенный VPN-доступ, системное мониторинг-окружение, автоматические бэкапы, разграничение прав доступа, а также настраиваем безопасный обмен данными между контейнерами и внешним окружением. Помимо развертывания, вы получаете постоянную техническую поддержку, возможность экстренного отключения доступа (физически или виртуально), и гибкое масштабирование инфраструктуры по мере роста нагрузки и проектов.

 

Docker на удалённом сервере от ZSC – это надежная, современная платформа, где вы сосредоточены на разработке и запуске, а мы берем на себя все, что связано с инфраструктурой.

 

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

 

Мы приготовили для вас готовые конфигурации удаленного сервера:

 

 

Воспользуйтесь нашим калькулятором и соберите свой удаленный сервер

 

Установка Docker на удаленный сервер через терминал

 

Подключитесь к целевой машине через SSH:

 

ssh user@ip_адрес

 

 

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

 

sudo apt update && sudo apt upgrade -y

 

Удалите старые версии, если они присутствуют:

 

sudo apt remove docker docker-engine docker.io containerd runc

 

Добавьте необходимые компоненты для загрузки пакетов через HTTPS:

 

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

 

Импортируйте официальный GPG-ключ:

 

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

 

Проверьте доступность установленного ПО:

 

sudo docker version

 

При необходимости дайте доступ к управляющим командам без sudo:

 

sudo usermod -aG docker $USER

 

Перезапустите сессию или выполните newgrp docker

 

Конфигурация доступа к Docker без использования sudo

 

 

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

 

  1. Убедитесь, что существует группа docker:
    • getent group docker
  2. Добавьте текущего пользователя в указанную группу:
    • sudo usermod -aG docker $USER
  3. Перезапустите сеанс, чтобы применились изменения:
    • Выйдите и снова войдите в систему, либо выполните newgrp docker
  4. Проверьте доступ без повышения прав:
    • docker ps должен выполняться без sudo

 

В случае использования SSH-авторизации через ключи и смены пользователя на другом хосте, убедитесь, что имя пользователя добавлено в группу docker на целевой стороне, иначе доступ будет ограничен правами по умолчанию.

 

Настройка подключения к удаленному Docker-демону по TCP

 

По умолчанию демон прослушивает только сокет Unix и недоступен по сети. Чтобы разрешить сетевые соединения, необходимо изменить параметры его запуска. Откройте файл юнита systemd: /lib/systemd/system/docker.service и в секции [Service] замените строку с ExecStart.

 

 

Пример строки:

 

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

 

После изменения конфигурации выполните команды:

 

sudo systemctl daemon-reexec

sudo systemctl restart docker

 

TCP-порт 2375 не использует шифрование. Чтобы избежать перехвата данных, желательно ограничить доступ с помощью фаервола. Например, разрешить соединения только с конкретного IP-адреса:

 

sudo ufw allow from 192.168.1.100 to any port 2375

 

Для подключения с клиентской машины используйте переменную окружения:

 

export DOCKER_HOST=tcp://IP_хоста:2375

 

Проверка соединения:

 

docker info

 

Проверка и управление контейнерами на удаленном сервере с локальной машины

 

Для взаимодействия с контейнерами через локальный терминал необходимо подключение по защищённому каналу. Убедитесь, что клиентская система имеет доступ к хосту по SSH и установлен бинарный файл docker с поддержкой удалённого сокета.

 

 

Создайте файл ~/.ssh/config со следующей конфигурацией:

 

Host docker-node

Hostname IP_ХОСТА

User ИМЯ_ПОЛЬЗОВАТЕЛЯ

IdentityFile ПУТЬ_К_КЛЮЧУ

 

Для подключения к контейнерам по SSH-переадресации выполните команду:

 

ssh -NL /tmp/docker.sock:/var/run/docker.sock docker-node

 

На локальной машине установите переменную окружения:

 

export DOCKER_HOST=unix:///tmp/docker.sock

 

Теперь можно выполнять команды управления напрямую:

 

  • docker ps – просмотр запущенных экземпляров;
  • docker stats – мониторинг использования ресурсов;
  • docker stop ИД– завершение работы конкретного контейнера;
  • docker exec -it ИД bash – вход в интерактивную сессию внутри окружения.

 

Для получения информации об образах и объёмах используйте docker images и docker volume ls. При необходимости очистки неиспользуемых элементов подходит команда docker system prune -f, но её стоит применять осознанно – она удаляет все неактивные ресурсы.

 

Если планируется регулярное взаимодействие, настройте alias или скрипт, автоматически выполняющий подключение и экспорт переменной.

 

Читайте также:

 

Оценка: 0.0/5 (Проголосовало: 0)

Спасибо за ваш отзыв!
Как можно улучшить эту статью?

Полный СПИСОК оказываемых услуг
E-Mail:
Вы получите предложение в течение одной минуты