Docker compose 如何限制从docker compose文件创建默认网络

Docker compose 如何限制从docker compose文件创建默认网络,docker-compose,Docker Compose,我与默认docker子网重叠,因此我想为一些服务设置自定义网络。docker编写版本:3 docker-compose.yml示例 version: '3' services: service1: build: dockerfile: Dockerfile service2: build: dockerfile: Dockerfile1 service3: build: dockerfile: Docker

我与默认docker子网重叠,因此我想为一些服务设置自定义网络。docker编写版本: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"

因此,当我执行以下命令时,我得到了两个网络:
docker组合--构建服务3

project\u defaultproject\u net1


但我需要其他服务的默认网络,因此无法更改默认设置。
如果没有用于服务,我应该怎么做才能不创建默认网络?

如果您没有针对给定服务的
网络:
规范,Docker Compose的行为就像您指定了
网络:[默认]
。在您的示例中,
service1
service2
位于
default
网络上,
service3
位于
net1
网络上

如果您确实需要Docker Compose不创建默认的
项目
网络,那么您需要将每个容器分配给其他网络。通过试验最小的
docker compose.yml
文件,将
networks:[net1]
显式添加到两个还没有它的服务中,将导致不创建
默认的
网络

如果您真正的问题只是围绕一个IP地址冲突,您可以这样做,这可能会更容易

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"

我无法更改默认设置。这是我想解决的地方问题。如果我更改默认设置,我可以为某人创建新问题每个
docker compose.yml
文件都有自己的
default
网络;更改一个项目的
默认设置
网络设置似乎不太可能对其他任何内容产生任何影响。