Сети, созданные docker-compose, не соответствуют настройкам подсети Docker. - PullRequest
0 голосов
/ 27 декабря 2018

У меня возникла проблема с конфигурацией сети нашей компании, поэтому мне пришлось изменить подсеть по умолчанию Docker, как описано в этой статье базы знаний .

Однако это работало для большинства моих контейнеров.У меня все еще есть проблемы с некоторыми из них.После проверки используемых сетей я все еще вижу IP-адреса, назначенные Docker, которые находятся за пределами допустимого диапазона.

Например, вот мой /etc/docker/daemon.json файл:

{
    "bip": "172.44.0.1/16"
}

Однако, когда я создаю сеть, Docker по-прежнему назначает адреса для ограниченных диапазонов.В качестве примера, я могу легко воспроизвести это поведение следующим образом:

$ docker network create test_net
d7ce97965b53b3d3ea1cf0b4169d7851e115b95fe9bb506ebfa6df0964db8630
$ docker network inspect test_net
[
    {
        "Name": "test_net",
        "Id": "d7ce97965b53b3d3ea1cf0b4169d7851e115b95fe9bb506ebfa6df0964db8630",
        "Created": "2018-12-27T12:54:10.515011613-06:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.20.0.0/16",
                    "Gateway": "172.20.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

Существует ли способ заставить Docker всегда генерировать сети в указанных IP-диапазонах?

1 Ответ

0 голосов
/ 28 декабря 2018

Решением было включить это в начало моего файла compose:

networks:
  default:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet:  10.103.0.1/16

Причина, по которой это работает, заключается в том, что Docker Compose всегда генерирует сеть по умолчанию для каждого приложения Compose, которое не определяет ее.Включив что-то подобное в каждое приложение, вы можете быть уверены, что ваши приложения никогда не конфликтуют и всегда используют указанный вами IP-диапазон.Для более масштабных приложений вам, вероятно, потребуется увеличить до 3 октетов вместо 2, (/ 24 vs /16).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...