Как ограничить создание сети по умолчанию из файла docker-compose - PullRequest
1 голос
/ 10 октября 2019

У меня перекрытие с подсетями докеров по умолчанию, поэтому я хочу настроить для некоторых служб пользовательскую сеть. версия docker-compose: 3

пример docker-compose.yml

version: '3'

services:
  service1:
    build:
      dockerfile: Dockerfile


  service2:
      build:
      dockerfile: Dockerfile1


  service3:
      build:
      dockerfile: Dockerfile2
      networks:
        - net1

networks:
  net1:
    ipam:
      driver: default
      config:
        - subnet: "172.101.0.0/24"

Поэтому, когда я выполняю следующую команду, я получаю 2 сети: docker-compose up --build -d service3

project_default и project_net1

Но мне нужна сеть по умолчанию для других служб, поэтому я не могу изменить настройки по умолчанию. Что я должен сделать, чтобы не создавать сеть по умолчанию, если она не используется для службы?

1 Ответ

0 голосов
/ 11 октября 2019

Если у вас нет спецификации networks: для данной службы, Docker Compose ведет себя так, как если бы вы указали networks: [default]. В вашем примере service1 и service2 находятся в сети default, а service3 в сети net1.

Если вам действительно нужен Docker Compose, чтобы не создавать сеть project_defaultтогда вам нужно назначить каждый контейнер какой-то другой сети. Если вы экспериментируете с минимальным файлом docker-compose.yml, то явное добавление networks: [net1] к двум службам, у которых его еще нет, приведет к тому, что сеть default не будет создана.

Если ваша настоящая проблема заключается просто вВо время конфликта IP-адресов вы можете вручную настроить default сеть , и это может быть проще.

version: '3'
services:
  service1:
    build: .
    # with no networks:, so it gets the default
networks:
  default:
    ipam:
      driver: default
      config:
        - subnet: "172.101.0.0/24"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...