禁止docker使用特定网络

时间:2017-05-12 06:27:36

标签: docker docker-compose

有没有办法告诉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

1 个答案:

答案 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并添加选项bipfixed-cidr

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