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

Ключ

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

Конфликт 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.0.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