Команда 'docker-compose up' создает сеть по имени [projectname] _default ", и все службы, указанные в файле docker-compose.yml, будут сопоставлены с созданной сетью.
Например, предположим, что ваше приложение находится в каталоге myapp, а ваш docker-compose.yml выглядит так:
version: "3"
services:
web:
build: .
ports:
- "8000:8000"
db:
image: postgres
ports:
- "8001:5432"
Когда вы запускаете docker-compose up, происходит следующее:
1) A network called myapp_default is created.
2) A container is created using web’s configuration. It joins the network myapp_default under the name web.
3) A container is created using db’s configuration. It joins the network myapp_default under the name db.
и если вы хотите, чтобы другая служба использовала существующую созданную докерную сеть, вам необходимо определить это с помощью опции 'external'
Использовать уже существующую сеть
Если вы хотите, чтобы ваши контейнеры присоединились к уже существующей сети, используйте внешний параметр:
networks:
default:
external:
name: my-pre-existing-network
Вместо того, чтобы пытаться создать сеть с именем [projectname] _default, Compose ищет сеть с именем my-pre-существующей сети и подключите к ней контейнеры вашего приложения.
источник: https://docs.docker.com/compose/networking/#use-a-pre-existing-network