Skip to main content

Конфликт адресов Docker при установке

Симптомы

  • После установки системы Принтум происходит разрыв соединения с сервером.
  • Подключение по SSH становится недоступным сразу после установки или при первом запуске контейнеров.

Возможные причины

Конфликт IP-адресов между внутренней сетью Docker и реальной локальной сетью. Для работы Принтум используется внутренняя сеть Docker с пулом адресов:

10.28.32.0/26

Если данный диапазон пересекается с адресным пространством инфраструктуры — необходимо выделить другой пул адресов для Docker.

Когда может возникнуть проблема

  • Во время установки системы.
  • Сразу после установки.
  • При первом запуске контейнеров.

Диагностика

Если подключение по SSH недоступно — подключитесь к серверу через консоль гипервизора (vSphere / Proxmox / Hyper-V и т.д.).


Логи и диагностические данные

Где смотреть логи

  • printum_nginx — Nginx Мониторинга — если конфликт возник при установке Мониторинга
    cd /opt/printum && docker-compose logs -f --tail=200 printum_nginx
  • printmanager_web — Nginx ПринтМенеджера — если конфликт возник при установке ПМ
    cd /opt/printmanager && docker-compose logs -f --tail=200 printmanager_web

Что искать в логах

  • Выявить ошибки запуска контейнеров после изменения пула адресов.
  • Проверить, что контейнеры успешно запустились после перенастройки сети Docker.

Что приложить к обращению в поддержку

  • Вывод команды bash /opt/printum/logs.sh (Мониторинг) или bash /opt/printmanager/logs.sh (ПринтМенеджер)
  • Версию: cat /opt/printum/.version или cat /opt/printmanager/.version
  • Описание сценария и шагов воспроизведения
  • ОС сервера

Решение

  1. Остановите контейнеры Принтум

Если установлен Мониторинг:

cd /opt/printum
docker-compose down

Если установлен ПринтМенеджер:

cd /opt/printmanager
docker-compose down
  1. Проверьте наличие файла конфигурации Docker

Проверьте, существует ли файл /etc/docker/daemon.json. Если файла нет — создайте его:

sudo nano /etc/docker/daemon.json
  1. Укажите новый пул IP-адресов Docker

Добавьте или отредактируйте содержимое файла:

{
  "default-address-pools": [
    {
      "base": "x.x.x.x/x",
      "size": 26
    }
  ]
}
  • "base" — выделенный диапазон IP-адресов, который не пересекается с локальной сетью.
  • "size": 26 — размер подсети (изменять не требуется).

Используйте только свободный диапазон, согласованный с сетевым администратором. Сохраните файл и выйдите из редактора.

  1. Перезапустите службу Docker
sudo systemctl restart docker
  1. Запустите контейнеры Принтум

Если установлен Мониторинг:

cd /opt/printum
docker-compose up -d

Если установлен ПринтМенеджер:

cd /opt/printmanager
docker-compose up -d
  1. Проверьте адреса контейнеров
sudo docker ps -q | sudo xargs -n 1 docker inspect -f '{{ .Name }}: {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'

Ошибка при запуске контейнеров

ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

Причина: выбранный диапазон адресов также пересекается с существующими сетями.
Решение: вернитесь к шагу 3 и укажите другой диапазон IP-адресов.


Если конфликт известен до установки

Если известно, что адресное пространство 10.28.32.0/26 конфликтует с вашей сетью до установки системы — выполните инструкцию, игнорируя шаги 1 и 5 (остановку и повторный запуск контейнеров). Настройка пула выполняется до первого запуска системы.


Что проверить перед эскалацией

  • Выбранный диапазон не пересекается с другими подсетями (проверить с сетевым администратором).
  • Файл /etc/docker/daemon.json сохранён корректно (валидный JSON).
  • Служба Docker перезапущена после изменения конфигурации.
  • IP-адреса контейнеров принадлежат новому пулу (шаг 6).