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

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

Подсети 172.17.0.0/16, 172.18.0.0/16, 10.0.0.0/24, 10.0.1.0/24.

По умолчанию Docker использует сети bridge 172.17.0.0/16, docker_gwbridge 172.18.0.0/16, visiology_default 10.0.1.0/24 и ingress 10.0.0.0/24 для организации взаимодействия между контейнерами платформы. Если эти подсети совпали с подсетью, в которой разворачивается платформа или в которой находятся клиенты платформы, то нужно поменять подсеть Docker.

Узнать подсети адаптеров можно с помощью команды ifconfig.

Если все интерфейсы не поместились в окно вывода, используйте команду ifconfig | more.

Показать сети docker можно командой docker network ls.

Узнать адрес сети docker можно командой docker network inspect <network name>.

Смена подсети у интерфейса docker_gwbridge (172.18.0.0/16)

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

  1. Удалить все контейнеры:

    docker stack rm visiology
  2. Выйти из swarm на всех нодах:

    docker swarm leave -f
  3. Удалить сеть docker_gwbridge:

    docker network rm docker_gwbridge
  4. Создать новую сеть, с необходимыми подсетью и шлюзом. Например:

  5. Выполнить запуск платформы. Подробнее см. статью Запуск платформы в пространстве для своей версии платформы.

Подробнее про смену подсети можно посмотреть здесь: https://success.docker.com/article/how-do-i-change-the-docker-gwbridge-address.

Смена подсети у интерфейса docker0 (172.17.0.0/16)

  1. Изменить файл от суперпользователя (создать, если его нет) /etc/docker/daemon.json

  2. Прописать все необходимые параметры:

    В минимальном случае должно хватить только параметра bip.

  3. Перезапустить сервис docker:

    Подробнее про смену подсети можно посмотреть здесь: https://docs.docker.com/v17.09/engine/userguide/networking/default_network/custom-docker0.

Смена адреса подсети visiology_default (10.0.1.0/24) и ingress (10.0.0.0/24).

  1. Останавливаем все контейнеры платформы (из папки с дистрибутивом платформы):

  2. Удаляем все остановленные контейнеры:

  3. Удаляем сети visiology_default и ingress.

  4. Создаем сети visiology_default и ingress новыми адресами: