Error response from daemon: invalid pool request: Pool overlaps with other one on this address space

1.目的

      在一台主机上,部署两个docker容器,并实现容器间的通信,从而实现greenplum7.2多节点集群部署。因此需要通过docker network构建自定义网络。

2.现象

执行docker network create --subnet=172.20.0.0/16 gp_net,报如下错误:

3.原因

  Docker 不允许两个网络在同一个地址空间(address space) 中重叠。这是为了避免 IP 地址冲突和网络混乱。

3.1执行 docker network ls能查看所有 Docker 网络

3.2执行 docker network inspect harbor查看harbor网络的详细内容

注通过docker network inspect  ***查看每个网络的详细内容,看到底哪个网络占用了172.20段网络。

[
    {
        "Name": "harbor",
        "Id": "78aad0dbd2e50ff4e4aa429a0a6bdbddc56d52a067e0b9f56d7b62b3f58020e6",
        "Created": "2025-06-21T14:11:13.990048474+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv4": true,
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.20.0.0/16",
                    "Gateway": "172.20.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

3.4发现172.20段网络被harbor所用,因此我们还一个172.19段进行gp_net的通信

4.docker network子命令详解

docker network 子命令用于管理 Docker 网络,提供了创建、查看、修改和删除网络等功能。以下是每个 docker network 命令的详细说明:

1. connect

功能:将一个容器连接到指定的网络。

使用场景:当你需要在容器启动后将其添加到额外的网络中时使用。

示例:

docker network connect my_network my_container

这会将名为 my_container 的容器连接到名为 my_network 的网络。

2. create

功能:创建一个新的 Docker 网络。

使用场景:当需要为一组容器定义自定义网络以实现隔离或特定的网络配置时使用。

示例:

docker network create --driver bridge my_custom_network

这会创建一个名为 my_custom_network 的桥接网络(默认驱动)。

3. disconnect

功能:从网络中断开一个容器。

使用场景:当你想移除容器与某个网络的关联而不必停止或删除容器时使用。

示例:

docker network disconnect my_network my_container

这会将名为 my_container 的容器从 my_network 网络断开。

4. inspect

功能:显示一个或多个网络的详细信息。

使用场景:用于获取关于特定网络的详细配置信息,如子网、网关等。

示例:

docker network inspect my_network

这将返回有关 my_network 的详细信息,包括其配置和连接的容器。

5. ls

功能:列出所有 Docker 网络。

使用场景:用于查看系统上现有的所有网络及其基本信息。

示例:

docker network ls

这会列出所有当前存在的 Docker 网络及其 ID、名称、驱动类型等。

6. prune

功能:移除所有未使用的网络。

使用场景:清理不再需要的网络资源,释放系统资源。

示例:

docker network prune

这将提示你确认是否要删除所有未被任何容器使用的网络。

7. rm

功能:移除一个或多个 Docker 网络。

使用场景:当你确定某些网络不再需要并希望手动清理它们时使用。

注意:不能删除正在被容器使用的网络。

示例:

docker network rm my_network_1 my_network_2

这将尝试删除名为 my_network_1 和 my_network_2 的网络。

使用技巧

网络驱动选项:在创建网络时可以指定不同的驱动程序(例如 bridge, overlay, host, macvlan),以适应不同的网络需求。

检查网络冲突:在设计网络拓扑时,请确保不同网络之间没有 IP 地址冲突,特别是在多主机环境中使用 overlay 网络时尤为重要。

利用标签(Labels):可以通过 --label 参数为网络添加元数据,方便管理和查找特定网络。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值