Конфликт 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 Если все интерфейсы не поместились в окно вывода, используйте команду ifconfog ifconfig | more Показать сети docker можно командой docker network ls Узнать адрес сети docker можно командой docker network inspect <network name> |
Смена подсети у интерфейса docker_gwbridge (172.18.0.0/16)
Предупреждение |
---|
Используйте шаги ниже, если все компоненты платформы установлены на одну машину. |
Удалить все контейнеры
Блок кода language actionscript3 theme Emacs docker stack rm -f $(docker ps -aq)visiology
Выйти из swarm на всех нодах
Блок кода language actionscript3 theme Emacs docker swarm leave -f
Удалить сеть docker_gwbridge
Блок кода language actionscript3 theme Emacs docker network rm docker_gwbridge
Создать новую сеть, с необходимыми подсетью и шлюзом. Как пример:
Блок кода language actionscript3 theme Emacs 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
Создать swarm
code
language actionscript3 theme Emacs docker swarm init
- Запустить run.sh с нужными параметрами.
Если компоненты платформы установлены на две машины, то на машине с основной частью нужно выполнить описанные выше шаги, а на машине с ViQube нужно выполнить шаги 1-4 без изменений, вместо шага 5 нужно выполнить команду вида
docker swarm join --token <token> <ip>:2377,
- Если платформа установлена на несколько серверов, то выполнить Установка компонентов на разные серверы пункт 7.
- Выполнить Запуск платформы
Примечание |
---|
Подробнее про смену подсети можно посмотреть здесь https://success.docker.com/article/how-do-i-change-the-docker-gwbridge-address |
Смена подсети у интерфейса docker0 (172.17.0.0/16)
- Изменить файл от суперпользователя (создать, если его нет)
/etc/docker/daemon.json
Прописать все необходимые параметры:
Блок кода language actionscript3 theme Emacs { "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"
Перезапустить сервис docker
Блок кода language actionscript3 theme Emacs 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).
Примечание |
---|
Для случая установки компонентов платформы на одну машину. |
- Останавливаем все контейнеры платформы (из папки с дистрибутивом платформы).
Блок кода language actionscript3 theme Emacs sudo ./run.sh -s
Удаляем все остановленные контейнеры.
Блок кода language actionscript3 theme Emacs sudo docker container prune
- Удаляем сети visiology_overlay и ingress.
Блок кода language actionscript3 theme Emacs sudo docker network rm visiology_overlay sudo docker network rm ingress
- Создаем сети visiology_overlay и ingress новыми адресами.
Блок кода language actionscript3 theme Emacs sudo docker network create \ --driver overlay \ --ingress \ --subnet=10.7.7.0/24 \ --gateway=10.7.7.1 \ ingress
Блок кода language actionscript3 theme Emacs sudo docker network create \ --driver overlay \ --subnet=10.7.8.0/24 \ --gateway=10.7.8.1 \ --attachable \ visiology_overlay