禁止docker使用特定网络

ala*_*bra 5 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": {}
    }
]
Run Code Online (Sandbox Code Playgroud)

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

kst*_*aos 5

在内部创建网络时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
Run Code Online (Sandbox Code Playgroud)

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

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

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

--fixed-cidr=CIDRdocker0使用标准 CIDR 表示法限制子网的 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子网中包含的前半部分地址中选择容器的 IP 。

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

{
"bip": "192.168.1.5/24",
"fixed-cidr": "192.168.1.0/25"
}
Run Code Online (Sandbox Code Playgroud)

  • 修改“docker-compose.yml”文件后,出现“不允许附加属性(“ip-range”、“子网”、“网关”意外)”错误。有没有人遇到同样的问题? (3认同)