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

Ключ

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

Конфликт 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_overlay 10.0.0.0/24 и ingress 10.0.1.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
    themeEmacs
    docker stack rm visiology


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

    Блок кода
    languageactionscript3
    themeEmacs
    docker swarm leave -f


  3. Удалить сеть docker_gwbridge:

    Блок кода
    languageactionscript3
    themeEmacs
    docker network rm docker_gwbridge


  4. Создать новую сеть, с необходимыми подсетью и шлюзом. Как пример:

    Блок кода
    languageactionscript3
    themeEmacs
    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. Если платформа установлена на несколько серверов, то выполнить Установка компонентов на разные серверы пункт 7.
  6. Выполнить Запуск платформы.
Примечание

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

    Блок кода
    languageactionscript3
    themeEmacs
    {
      "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:

    Блок кода
    languageactionscript3
    themeEmacs
    sudo service docker restart


    Примечание

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


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

Примечание

Для случая установки компонентов платформы на одну машину.

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

    .

    :

    Блок кода
    languageactionscript3
    themeEmacs
    sudo ./run.sh -s


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

    Блок кода
    languageactionscript3
    themeEmacs
    sudo docker container prune


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

    Блок кода
    languageactionscript3
    themeEmacs
    sudo docker network rm visiology_overlay
    sudo docker network rm ingress


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

    .

    :

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


    Блок кода
    languageactionscript3
    themeEmacs
     sudo docker network create \
      --driver overlay \
      --subnet=10.7.8.0/24 \
      --gateway=10.7.8.1 \
      --attachable \
      visiology_overlay