禁止docker使用特定的networking

有没有办法告诉docker不使用一些特定的networking时运行docker-compose up

我正在使用一些开箱即用的示例( hyperledger ),每次hyperledger都会收到一个中断远程连接的地址。

 [xxx@xxx fabric]$ docker network inspect some_network [ { "Name": "some_network", "Id": "xxx", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.30.0.0/16", "Gateway": "172.30.0.1/16" } ] }, "Internal": false, "Containers": {}, "Options": {}, "Labels": {} } ] 

我想要告诉docker(不编辑docker-compose.yaml文件)从不使用networking172.30.0.0/16

docker-compose.yml创buildnetworking时,可以指定IP范围,子网,网关等。可以这样做。

 version: "3" services: service1: build: . ... networks: default: subnet: 172.28.0.0/16 ip-range: 172.28.5.0/24 gateway: 172.28.5.254 

要在Docker守护进程中执行此操作,您必须传递--bip--fixed-cidr参数。

从Docker文档: https : //docs.docker.com/engine/userguide/networking/default_network/custom-docker0/

--bip=CIDR :使用标准CIDR表示法为docker0网桥提供特定的IP地址和networking掩码。 例如: 192.168.1.5/24

--fixed-cidr=CIDR :使用标准的CIDR表示法来限制docker0子网的IP范围。 例如: 172.16.1.0/28 。 此范围必须是固定IP的IPv4范围,例如10.20.0.0/16 ,并且必须是网桥IP范围的子集(docker0或使用–bridge设置)。 例如,使用–fixed-cidr = 192.168.1.0/25 ,将从192.168.1.0/24子网中包含的前半部分地址中select容器的IP地址。

要使这个更改永久化,请创build或编辑/etc/docker/daemon.json并添加选项bipfixed-cidr

 { "bip": "192.168.1.5/24" "fixed-cidr": "192.168.1.0/25" }