【Docker系列】docke报错 non-overlapping IPv4 address pool among the defaults to assign to the network 解决方法

这篇具有很好参考价值的文章主要介绍了【Docker系列】docke报错 non-overlapping IPv4 address pool among the defaults to assign to the network 解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 问题

1.1 问题描述

1.2 原因:

1.3 排查步骤: 

1.3.1 查看docker 网络

1.3.2 查看网络数量 

1.4 解决方案

1.4.1 删除没使用的网络

1.4.2 修改docker默认网络地址

1.4.3 yml指定网络

2.投票


 could not find an available, non-overlapping ipv4 address pool among the def,Docker系列,docker,容器,运维

好运气不会凭空而来,要么藏在努力里,要么藏在坚持里。

文章标记颜色说明:

  • 黄色:重要标题
  • 红色:用来标记结论
  • 绿色:用来标记一级论点
  • 蓝色:用来标记二级论点

1. 问题

1.1 问题描述

docker-compose up -d 命令部署,报错如下

Creating network "test_default" with the default driver

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

1.2 原因:

Docker默认支持30个不同的自定义bridge网络,如果超过这个限制,就会提示上面的错误

1.3 排查步骤: 

1.3.1 查看docker 网络

使用命令:

docker network ls

查看创建的网络,可以查看服务器上目前已存在的网络,

could not find an available, non-overlapping ipv4 address pool among the def,Docker系列,docker,容器,运维

说明:

bridge、host、none,是docker默认网络,不能删除

bridge:桥接网络
默认情况下启动的Docker容器,是使用 bridge

Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,就导致重启后,Docker的IP地址就变了

none:无指定网络
使用 --network=none ,docker 容器就不会分配局域网的IP,

这种适合不需要分配IP的情况。

host: 主机网络
使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。
例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中。

1.3.2 查看网络数量 

使用命令:

docker network ls | wc -l

could not find an available, non-overlapping ipv4 address pool among the def,Docker系列,docker,容器,运维

可以查看到现有数量33,

除去 标题栏 、默认的 host、null 正好有30个bridge网络,

也说明了 “Docker默认支持30个不同的自定义bridge网络”是这个原因导致

1.4 解决方案

1.4.1 删除没使用的网络

这种方法可以快速解决问题,且不用重启docker,

但是对于服务器数量多,复杂的情况,也存在一定的风险。

不要盲目删除,需要确定能删除才去执行。

使用命令:

docker network prune

这种方案可以快速解决问题,但是也有一定的不足之处。

could not find an available, non-overlapping ipv4 address pool among the def,Docker系列,docker,容器,运维

输入y,即可删除

 删除之后,查询数量,可以看到数量减少了

could not find an available, non-overlapping ipv4 address pool among the def,Docker系列,docker,容器,运维

这时候,去部署项目,即可成功 

1.4.2 修改docker默认网络地址

这种方法可以一劳永逸,但是如果对docker重启要求比较严格,还是要慎重选择。

可以再docker安装成功之后,就修改其网络地址,即可避免后期该问题的发生。

通常情况下docker服务安装后,docker默认使用的网络IP段是172.17.0.1/24,

这样容易对实际环境造成冲突。为了解决这个问题,可参考以下方法

1.使用如下命令,停止docker

systemctl stop docker

2.cat /etc/docker/daemon.json

cat /etc/docker/daemon.json

在文件中添加 default-address-pools,如下:

    "default-address-pools":[
        {"base":"172.20.0.0/16","size":24},
        {"base":"172.21.0.0/16","size":24},
        {"base":"172.22.0.0/16","size":24},
        {"base":"172.23.0.0/16","size":24}
    ]

这个配置将允许Docker分配

172.20.[0-255].0/24

每个网络允许访问256个地址,256*4=1024 总共1024个网络。

此外,加入后需要 删除现有网络占用,执行命令如下:

docker network prune  

重启docker, 后续该问题应该就不会发生了。

service docker restart

1.4.3 yml指定网络

此方法 需要修改 docker-compose.yml 文件

如果项目docker-compose.yml文件较多 会比较麻烦

创建网络

docker network create docker_compose_default_network --subnet 172.20.1.0/24

docker-compose.yaml指定网络文章来源地址https://www.toymoban.com/news/detail-783257.html

networks:
  default:
    external: 
      name: docker_compose_default_network 

2.投票

到了这里,关于【Docker系列】docke报错 non-overlapping IPv4 address pool among the defaults to assign to the network 解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker系列-报错以及解决指南

    Docker Desktop - Windows Hypervisor is not presentDocker Desktop is unable to detect a Hypervisor.Hardware assisted virtualization and data execution protection must be enabled in the BIOS. See https://docs.docker.com/desktop/troubleshoot/topics/#virtualization 解决方案 1. 检查 2. 搜索并打开 windows功能 3. 管理员身份打开 cmd窗口 执行

    2024年02月08日
    浏览(28)
  • Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the dock

    记录一下初使用docker时,报错 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the dock er daemon running? 的解决思路。 服务器使用阿里云的,经常重启,一直没有管理之前安装的docker,现在想学习spark,遍跟着官网开始下载spark,执行了 docker pull apachecn0/spark-doc-zh 就报了下面

    2024年02月16日
    浏览(37)
  • 使用docker安装Jenkins时无法pull问题Trying to pull repository docker.io/jenkins/jenkins ...manifest for dock..

    博客:docker 安装jenkins 第一步:安装Jenkins的镜像 报错 解决方案 解决方案博客:解决docker pull java或者xxx镜像报错的问题 ,结合:linux 操作 json文件 先说原理和操作: 原理就是在我们pull镜像时,用的时原有的镜像(属于国外),我们修改为国内的镜像pull,会快很多也不容易

    2024年02月08日
    浏览(60)
  • 【Docker系列】push镜像报错问题&解决方案

    docker push 报这个错,unknown blob 详细报错内容: 当 Docker push 时出现 \\\"unknown blob\\\" 错误时,这通常表示 Docker 镜像中缺少某些层或 blob。 有几种可能的解决方案: 修改daemon.json文件 检查 Docker 镜像是否存在 检查 Dockerfile 是否正确 清除 Docker 缓存 重新构建 Docker 镜像 检查 Docker 镜像

    2024年02月16日
    浏览(80)
  • linux下执行jmeter脚本报错: Non HTTP response code: org.apache.http.conn.HttpHostConnectException/Non HTTP

    报错内容: 原因分析: test-copd.medciot.com 连不上 没做hosts绑定 解决方案: 找到/etc/hosts文件 进入hosts文件 vim hosts 编辑如下报错并退出 重新执行脚本后即可

    2024年02月10日
    浏览(36)
  • 报错:crbug/1173575 non-js module files deprecated

    这个错误报告 (crbug/1173575) 指的是非 JavaScript 模块文件将不再被支持,并且已经弃用。 这个问题是因为Chrome 88版本开始,对于网页中使用了非JS模块文件(如CSS、图片、模板等)的情况,会在控制台中给出一个警告,而这个警告就是crbug/1173575 non-js module files deprecated。 要解决

    2024年02月16日
    浏览(23)
  • git 报错:! [rejected] master -> master (non-fast-forward)

    当提交代码时出现如下错误:  non-fast-forward:译为‘不能快速前进’,远程仓库更新了,你没有及时同步到本地,提交的时候添加了新的内容,提交的时候,然后检测到远程和本地不一样。为了安全起见,报了这个错误。 可以先合并之前的历史,在进行提交 1. 先把git的东西

    2024年02月08日
    浏览(34)
  • git报错:[rejected]master->master(non-fast-forward)

    今天新建了一个仓库,并未push代码,然后按提交代码的流程提交项目时,报错 经过百度后发现原因是仓库中有readme文件,而项目中没有,内容不同步造成的,但是我明明执行过下面命令拉取过代码。 后来查百度又执行下面语句后成功在本地同步了readme文件 之后再次提交,还

    2024年02月12日
    浏览(82)
  • git push报错 ! [rejected] dev -> dev (non-fast-forward)

    问题 git push 进行代码提交时报错 ! [rejected] dev -> dev (non-fast-forward) 原因 是本地库和远程库没有同步导致无法提交合并,冲突导致无法push 解决办法 情况一:第一次提交,远程喝本地分支没有关联,在原有命令后加 --allow-unrelated-histories 情况二:已经进行git操作,有了关联的

    2024年02月15日
    浏览(44)
  • Chorme复制Cookie,请求报错:contains non-iso-8859-1 characters

    项目调试的时候,我需要去复制一段Cookie进行本地调用,然而就在我在Chrome按F12进入检查模式,查看Network-Fetch/XHR 中请求的时候,我选中了一个Cookie值,直接复制到本地postman调用,发现报错了…… 请求API直接报错: Error: Parse Error: Response overflow 注意,我在Chrome浏览器中,复

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包