Docker compose каждый раз создает сеть с разными подсетями

У меня есть простой файл yaml, который запускает два контейнера: JBoss и Postgres. Когда я бегу:

docker-compose -f compose-application.yaml up -d

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

docker-compose -f compose-application.yaml down

и запустите их еще раз, тогда сеть получит новую подсеть (увеличенную на 1). При повторном перезапуске несколько раз присвоенная подсеть конфликтует с уже существующей (проблема с маршрутизацией и т. Д.).

Я знаю, что могу указать подсеть, которую следует использовать внутри yaml. Однако я попытался запустить это на другом компьютере (Docker для Windows 7), и эта сеть каждый раз получает одну и ту же подсеть.

Я использую версию докера:

docker version
Client:
Version:           18.06.1-ce
API version:       1.38
Go version:        go1.10.3
Git commit:        e68fc7a
Built:             Tue Aug 21 17:23:03 2018
OS/Arch:           linux/amd64
Experimental:      false

Server:
Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:25:29 2018
  OS/Arch:          linux/amd64
  Experimental:     false

и докер составляют:

docker-compose version
docker-compose version 1.23.1, build b02f1306
docker-py version: 3.5.0
CPython version: 3.6.7
OpenSSL version: OpenSSL 1.1.0f  25 May 2017

person Adam    schedule 08.01.2019    source источник
comment
Это было как-то решено?   -  person Najiva    schedule 04.01.2021
comment
Создание сети с именем APP_NAME_default: docker network create --subnet = 172.18.0.0 / 16 APP_NAME_default приведет к тому, что docker-compose up не будет создавать новую сеть. Вместо этого он подключится к существующей сети с желаемой маской.   -  person Najiva    schedule 04.01.2021


Ответы (1)


Я не знаю, почему это работает по-другому в Windows 7, но могу представить, что это из-за самой машины Docker.

Я думаю, что лучшее решение - это действительно определить сеть в файле yml для создания докеров. Что-то вроде этого:

  networks:
    network_name:
      name: NETWORK_NAME
      driver: bridge
      ipam:
        config:
          - subnet: SUBNET
person andre-lx    schedule 09.01.2019