Конфликт адресов 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 - Описание сценария и шагов воспроизведения
- ОС сервера
Решение
- Остановите контейнеры Принтум
Если установлен Мониторинг:
cd /opt/printum
docker-compose down
Если установлен ПринтМенеджер:
cd /opt/printmanager
docker-compose down
- Проверьте наличие файла конфигурации Docker
Проверьте, существует ли файл /etc/docker/daemon.json. Если файла нет — создайте его:
sudo nano /etc/docker/daemon.json
- Укажите новый пул IP-адресов Docker
Добавьте или отредактируйте содержимое файла:
{
"default-address-pools": [
{
"base": "x.x.x.x/x",
"size": 26
}
]
}
"base"— выделенный диапазон IP-адресов, который не пересекается с локальной сетью."size": 26— размер подсети (изменять не требуется).
Используйте только свободный диапазон, согласованный с сетевым администратором. Сохраните файл и выйдите из редактора.
- Перезапустите службу Docker
sudo systemctl restart docker
- Запустите контейнеры Принтум
Если установлен Мониторинг:
cd /opt/printum
docker-compose up -d
Если установлен ПринтМенеджер:
cd /opt/printmanager
docker-compose up -d
- Проверьте адреса контейнеров
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).