Конфликт 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)
Используйте шаги ниже, если все компоненты платформы установлены на одну машину.
Удалить все контейнеры:
docker stack rm visiologyВыйти из swarm на всех нодах:
docker swarm leave -fУдалить сеть
docker_gwbridge:docker network rm docker_gwbridgeСоздать новую сеть, с необходимыми подсетью и шлюзом. Например:
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Выполнить запуск платформы. Подробнее см. статью Запуск платформы в пространстве для своей версии платформы.
Подробнее про смену подсети можно посмотреть здесь: https://success.docker.com/article/how-do-i-change-the-docker-gwbridge-address.
Смена подсети у интерфейса docker0 (172.17.0.0/16)
Изменить файл от суперпользователя (создать, если его нет)
/etc/docker/daemon.jsonПрописать все необходимые параметры:
{ "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: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).
Для случая установки компонентов платформы на одну машину.
Останавливаем все контейнеры платформы (из папки с дистрибутивом платформы):
sudo ./run.sh --stopУдаляем все остановленные контейнеры:
sudo docker container pruneУдаляем сети
visiology_defaultиingress.sudo docker network rm visiology_default sudo docker network rm ingressСоздаем сети
visiology_defaultиingressновыми адресами:sudo docker network create \ --driver overlay \ --ingress \ --subnet=10.7.7.0/24 \ --gateway=10.7.7.1 \ ingresssudo docker network create \ --driver overlay \ --subnet=10.7.8.0/24 \ --gateway=10.7.8.1 \ --attachable \ visiology_default