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

Конфликт 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. Создать новую сеть, с необходимыми подсетью и шлюзом. Как пример:

    docker network create  \
    --subnet 172.20.0.0/20 \
    --gateway 172.20.0.1 \
    -o com.docker.network.bridge.enable_icc=false \
    -o com.docker.network.bridge.name=docker_gwbridge \
    docker_gwbridge
  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": "192.168.1.5/24",
      "fixed-cidr": "192.168.1.5/25",
      "fixed-cidr-v6": "2001:db8::/64",
      "mtu": 1500,
      "default-gateway": "10.20.1.1",
      "default-gateway-v6": "2001:db8:abcd::89",
      "dns": ["10.20.1.2","10.20.1.3"]
    }

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

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

    sudo service docker restart

    Подробнее про смену подсети можно посмотреть здесь 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. Останавливаем все контейнеры платформы (из папки с дистрибутивом платформы):

    sudo ./run.sh --stop
  2. Удаляем все остановленные контейнеры:

    sudo docker container prune
  3. Удаляем сети visiology_default и ingress.

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

    sudo docker network create \
      --driver overlay \
      --ingress \
      --subnet=10.7.7.0/24 \
      --gateway=10.7.7.1 \
      ingress
     sudo docker network create \
      --driver overlay \
      --subnet=10.7.8.0/24 \
      --gateway=10.7.8.1 \
      --attachable \
      visiology_default

Related content

Просмотр истории изменений показателей
Просмотр истории изменений показателей
More like this
Просмотр истории изменений показателей
Просмотр истории изменений показателей
More like this
Просмотр истории изменений показателей
Просмотр истории изменений показателей
More like this
Просмотр истории изменений показателей
Просмотр истории изменений показателей
More like this
Просмотр истории изменений показателей
Просмотр истории изменений показателей
More like this
Пользовательские измерения
Пользовательские измерения
More like this