Docker внутренняя сеть и внешняя система, которые должны быть подключены, находятся в одном диапазоне, т.е. 172.160.0.0/16 - PullRequest
0 голосов
/ 05 августа 2020

В моем текущем приложении контейнеры используют сеть 172.16.0.0/16 для соединения с другими контейнерами на хосте. Теперь нам нужно подключиться к внешней системе с IP-адресом 172.16.2.2

При попытке подключиться / пинговать этот IP-адрес 172.16.2.2, он блокируется, говоря, что нет маршрута к хосту.

Итак, насколько я понимаю, что-либо в 172.16.0.0 под genmask 255.255.0.0 не будет выходить из внешнего интерфейса.

Каков самый простой способ решить эту проблему или мне нужно изменить моя внутренняя docker сеть для использования диапазона 192.168.0.0/16

1 Ответ

1 голос
/ 05 августа 2020

Вам нужно будет сменить внутреннюю docker сеть. Или, если вы используете docker -compose, вы можете изменить сеть по умолчанию docker на другой su bnet.

networks:
  default:
    ipam:
      config:
        - subnet: 172.20.0.0/16

Для внутренней сети docker вы можете настроить мост по умолчанию сети, задав параметры в файле /etc/docker/daemon.json (на linux), например:

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

Ref: https://docs.docker.com/network/bridge/#configure -the-default-bridge-network

Тот же ответ здесь: Как настроить docker, чтобы избежать и указать c адрес или su bnet?

...