Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Ошибки при пересечении IP-адресов между Docker и хост-системой

Проблема

В случае пересечения подсетей Docker (по умолчанию 172.17.0.0/16) и хост-системы возможны:

  1. Ошибки развертывания контейнеров или старта сервисов Docker.

  2. Ошибки обращения к инфраструктурным сервисам, например, ввод брокера в домен.

  3. Другие ошибки.

Решение

Для решения конфликта IP-адресов выполните следующие шаги:

  1. Удалите систему СТД «Термит» из каталога, куда был распакован дистрибутив, с помощью команды:

    sudo ./install uninstall
  2. Удалите базу данных, использованную для установки СТД «Термит».

    При получении сообщения «База данных занята другими пользователями» выполните перезагрузку сервера и повторите команду для удаления.

  3. Создайте новую базу данных.

  4. Создайте конфигурационный файл для Docker с другой подсетью, не конфликтующей с сетью хоста. Для этого:

    1. Создайте конфигурационный файл с помощью команды:

      sudo nano /etc/docker/daemon.json
    2. Очистите содержимое файла и вставьте следующие строки:

      {
        "default-address-pools": [
          {"base":"10.66.0.0/16","size":24}
        ]
      }
    3. Сохраните файл.

    4. Перезапустите службу Docker с помощью команды:

      sudo service docker restart
    5. Проверьте IP-адрес интерфейса docker0:

      ifconfig docker0
  5. Заново разверните Termit в новую базу данных, созданную на шаге 3.

  6. Проверьте, что все контейнеры получили новый IP-адрес из пула с помощью команды:

    docker network inspect termit_default