禁止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
并添加选项bip
和fixed-cidr
。
{ "bip": "192.168.1.5/24" "fixed-cidr": "192.168.1.0/25" }