有没有办法告诉docker在运行docker-compose up
时不使用某些特定网络?
我正在使用一些开箱即用的示例(hyperledger
),每次docker获取一个破坏远程连接的地址。
[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文件)永远不要使用网络172.30.0.0/16
。
答案 0 :(得分:3)
在docker-compose.yml
内创建网络时,您可以指定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
:提供特定的IP地址和网络掩码docker0
桥,使用标准CIDR表示法。例如:192.168.1.5/24
。
--fixed-cidr=CIDR
:限制docker0
子网的IP范围, 使用标准CIDR表示法。例如:172.16.1.0/28
。这个范围 必须是固定IP的IPv4范围,例如10.20.0.0/16
是桥接IP范围的子集(docker0或使用--bridge设置)。 例如,使用--fixed-cidr =192.168.1.0/25
,IP为您的 容器将从包含在其中的前半部分地址中选择192.168.1.0/24
子网。
要使此更改成为永久更改,请创建或修改/etc/docker/daemon.json
并添加选项bip
和fixed-cidr
。
{
"bip": "192.168.1.5/24",
"fixed-cidr": "192.168.1.0/25"
}