Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Конфликт 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. Удалить все контейнеры:

    Блок кода
    languageactionscript3

...

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

    Блок кода
    languageactionscript3

...

...

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

    Блок кода
    languageactionscript3

...

...

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

...

  1. Например:

    Блок кода
    languageactionscript3

...

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

...

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

Примечание

Подробнее про смену подсети можно посмотреть здесь: 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. Прописать все необходимые параметры:

    Блок кода
    language

...

  1. none
    {
      "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"]
    }

...

  1. (информация) В минимальном случае должно хватить только параметра

...

  1. bip

...

  1. .

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

    Блок кода
    languageactionscript3

...

  1. sudo service docker restart

...

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

    Блок кода
    language

...

  1. none
    sudo ./run.sh --

...

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

    Блок кода
    language

...

  1. none

...

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

    Блок кода
    language

...

  1. none

...

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

    Блок кода
    languageactionscript3

...

  1. sudo docker network create \
      --driver overlay \
      --ingress \
      --subnet=10.7.7.0/24 \
      --gateway=10.7.7.1 \
      ingress
    Блок кода
    languageactionscript3

...

  1.  sudo docker network create \
      --driver overlay \
      --subnet=10.7.8.0/24 \
      --gateway=10.7.8.1 \
      --attachable \
      visiology_default