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 Описание сценария и шагов воспроизведения ОС сервера Решение

            Решение

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

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

              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).