PHP CLI - ERROR: 无法在默认的IPv4地址池中找到可用且非重叠的地址,以分配给网络。

12 浏览
0 Comments

PHP CLI - ERROR: 无法在默认的IPv4地址池中找到可用且非重叠的地址,以分配给网络。

我正在尝试运行docker-compose up -d命令,使用以下的docker-compose.yml文件:

version: '2'

services:

php7-cli:

build: php7-cli

image: php7-cli

tty: true

volumes:

- ../:/var/www/app

networks:

- my-network

networks:

my-network:

driver: bridge

docker-compose build成功构建,但是当我尝试运行docker-compose up时,出现以下错误信息:

ERROR: could not find an available, non-overlapping IPv4 address 
pool among the defaults to assign to the network

当我尝试运行docker network ls时,得到的结果是:

NETWORK ID          NAME                DRIVER              SCOPE
7c8a6c131c1b        bridge              bridge              local
9f16d3a33b4e        host                host                local
24c54a4323ed        none                null                local

我尝试通过docker network prune来删除孤立的网络,但是没有一个网络被移除。

然后,我尝试手动删除bridge网络:docker network rm 7c8a6c131c1b,但是我收到了以下错误信息:

Error response from daemon: bridge is a pre-defined network and cannot be removed

这是我的docker version

docker version
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Thu Apr 26 07:17:20 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm
Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Thu Apr 26 07:15:30 2018
  OS/Arch:      linux/amd64
  Experimental: false

0
0 Comments

在PHP CLI中出现错误:“ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network”。这个问题的出现原因是网络接口的命名不匹配,可以通过将网络接口的名称从ens33改为eth0来解决。

根据https://www.itzgeek.com/how-tos/mini-howtos/change-default-network-name-ens33-to-old-eth0-on-ubuntu-16-04.html上的指南进行操作可以解决该问题。

0
0 Comments

问题原因:在 docker 网络中存在没有使用的 bridge 类型网络,导致无法分配可用的、非重叠的 IPv4 地址池给网络。

解决方法:删除不再使用的 bridge 类型网络。

具体步骤如下:

1. 列出 docker 网络,查找与不再使用的项目相关的 bridge 类型网络。

- 这些网络是在多个目录中运行 docker-compose 应用时创建的。

   $ docker network ls
   NETWORK ID     NAME                                        DRIVER    SCOPE
   070b2051c2d6   altacv_default                              bridge    local
   90269e56ef9c   arquitecture_default                        bridge    local
   f04c85b27605   awesome-cv-docker_default                   bridge    local
   cfdc24506a32   aws-s3-bucket-state_default                 bridge    local
   51b7b53697cc   bridge                                      bridge    local
   e4f4800f11bf   certs-resource_default                      bridge    local
   7d760fc8a8c3   cloner_default                              bridge    local
   4a161fb223cc   coverletter_default                         bridge    local
   d16029047f65   distance-matrix-service_default             bridge    local
   9e944ddd5da0   docker-compose-deployer_default             bridge    local
   fb25db546e14   docker-compose-deployment_default           bridge    local
   150cd02ad55c   docker-neo4j_default                        bridge    local
   c76d6167e7b1   docker-pycobertura_default                  bridge    local
   

2. 删除不再使用的网络。逐个删除不需要的网络的网络ID。

   $ docker network rm 655b6657b925 644fecac3549 6fac6fd59fe8 3d03a7df183d 40d112093fc7 32de1ea6549d 5cdd12695a4d 1e30562c7f63 58b1f6343780 e7bbf7af6dbb 4a161fb223cc 070b2051c2d6 90269e56ef9c
   655b6657b925
   Error response from daemon: error while removing network: network tools_supercash-data id 644fecac3549735341a482ddf330918a2050bc6ee2bcd4123d208051c836f9eb has active endpoints
   6fac6fd59fe8
   3d03a7df183d
   40d112093fc7
   ...
   ...
   ...
   

3. 完成,现在可以正常使用 docker-compose。

   docker-compose up 
   ...
   ...
   

这样,通过删除不再使用的网络,就可以解决出现"ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network"的问题。

0
0 Comments

问题出现的原因是机器上的网络接口数量达到了最大值,导致无法为网络分配可用的、不重叠的IPv4地址池。当运行docker-compose up命令时,会创建一个新的网络接口,但在运行docker-compose down命令时,这个接口应该被删除。然而,由于网络接口数量过多,无法正确停止docker,因此无法通过docker-compose up命令创建新的网络。

解决方法是重启机器。重启机器后,网络接口数量会被重置,从而解决无法分配IPv4地址池的问题。

0