Docker构建镜像时空间不足:/var/lib/docker,no space left on device

背景

在一次更新业务服务功能后,重新在服务器上构建微服务镜像,在构建镜像时报错空间不足:

/var/lib/docker, no space left on device

赶紧用 df -h 看了下磁盘使用情况,果然, devicemapper 已经满了。。由于需要紧急上线,没有采用迁移 Docker 工作目录的方式;而是想办法删除一些没用的文件,空出本次镜像构建、容器运行的空间。

devicemapper

在处理问题前,先来了解下什么是 docker/devicemapper ,这个目录存储了 Docker 使用 devicemapper 存储驱动时的相关数据。这包括镜像、容器和卷的数据。 DevicemapperDocker 的一种存储驱动程序,它使用块设备来存储 Docker 容器的数据。在 docker/devicemapper 目录中,我们可以看到 metadatasnapshotsthinpool 等文件和目录,用于存储 devicemapper 驱动所需的数据。

腾出空间

你可以删除 docker/devicemapper 目录下的内容,但请注意,这将导致丢失所有存储在其中的镜像、容器和卷的数据。如果想要清理这些数据,最好使用 Docker 提供的命令来进行清理,以确保数据被正确地清理并且不会导致系统不稳定。为了给本次镜像构建、容器运行腾出空间,我主要采用了以下命令。

  • 检查Docker数据目录的大小

du -sh /var/lib/docker

  • 查找并删除一些过旧或者不再需要的日志文件

find /var/lib/docker/devicemapper/mnt -name “*.log” -type f -exec rm {} ;

  • 查找并删除一些过旧或者不再需要的临时文件

find /var/lib/docker/devicemapper/mnt -name “*.tmp” -type f -exec rm {} ;

  • 删除无用卷

docker volume rm $(docker volume ls -qf dangling=true)

  • 清理dangling image

docker rmi $(docker images --filter “dangling=true” -q --no-trunc)

  • 清理无用的镜像和容器

docker system prune -a

# 检查Docker数据目录的大小
du -sh /var/lib/docker# 查找并删除一些过旧或者不再需要的日志文件
find /var/lib/docker/devicemapper/mnt -name "*.log" -type f -exec rm {} \; # 查找并删除一些过旧或者不再需要的临时文件
find /var/lib/docker/devicemapper/mnt -name "*.tmp" -type f -exec rm {} \; # 删除无用卷
docker volume rm $(docker volume ls -qf dangling=true)# 清理dangling image
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)# 清理无用的镜像和容器
docker system prune -a
  • 调整Docker的数据目录
    如果你的Docker数据目录(通常是/var/lib/docker)所在的分区空间不足,也可以考虑将其迁移到空间更大的分区。具体的迁移方式网上教程很多,由于我这次
    没有亲身实践,就省略这部分了。

2023-12-16-DFSnap.png

最终,通过删除无用卷 docker volume rm $(docker volume ls -qf dangling=true) 这条命令,成功空出了2G+的磁盘空间。

小总结

解决问题的方法有很多种,因为每个问题都有其独特的特点和背景。在选择解决方案时,需要考虑问题的性质、规模和环境。有时候,简单的问题可能需要简单的解决方案,而复杂的问题可能需要更加深入的分析和综合的解决方案。因此,对于不同的场景,我们需要灵活运用各种工具、技术和方法来解决问题,以达到最佳的效果。

比如这次遇到的问题,你可以尝试清理不必要的镜像和容器来释放空间。另外,也可以考虑调整devicemapper的配置,比如增加数据卷的大小或者切换到其他存储驱动。但是最重要的是:记得在操作之前备份数据。

Reference

  • https://blog.51cto.com/u_16175464/7097163

If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/227428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Pytorch从零开始构建LoRA

引言 在这篇博文中,我将向大家展示如何使用Pytorch从头开始构建 LoRA。LoRA 是Low-Rank Adaptation或Low-Rank Adapters的缩写,它提供了一种高效且轻量级的方法来微调预先存在的语言模型。这包括BERT和RoBERTa等掩码语言模型,以及GPT、Llama…

基于循环神经网络长短时记忆(RNN-LSTM)的大豆土壤水分预测模型的建立

Development of a Soil Moisture Prediction Model Based on Recurrent Neural Network Long Short-Term Memory in Soybean Cultivation 1、介绍2、方法2.1 数据获取2.2.用于预测土壤湿度的 LSTM 模型2.3.土壤水分预测的RNN-LSTM模型的建立条件2.4.预测土壤水分的RNN-LSTM模型…

蓝桥杯专题-真题版含答案-【三角螺旋阵】【干支记年法】【异或加密法】【金字塔】

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

开源的Spring Boot学习资源

1 javaboy-video-samples 整合了 Spring Boot 使用的各种示例,以最简单、最实用为标准,每个示例也都以最小依赖, 最简单为标准,帮助初学者快速掌握 Spring Boot 各组件的使用,基本上涉及到了 Spring Boot 使用的方方…

内网渗透测试基础——Windows PowerShell篇

内网渗透测试基础——Windows PowerShell篇 1. Windows PowerShell基础 Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在每个受支持的Windows版本中(Windows7、Windows Server 2008 R2及更高版本),为Windows命令行使…

怎么使用会声会影?2024年最新使用会声会影的具体步骤

一听说视频剪辑我们就不由得联想到电影、电视等一些高端的视频剪辑技术,大家都觉得视频剪辑是一个非常复杂而且需要很昂贵的设备才可以完成的技术活,这对很多“门外汉”来说都可望而不可及。实际上,使用会声会影剪辑视频不仅是很多人都可以操…

Docker单机部署OceanBase

文章目录 说明机器软硬件要求指导文档本次部署环境说明 OceanBase单机部署(Docker)一:拉取 OceanBase 数据库相关镜像二:启动 OceanBase 数据库实例完整启动日志展示 三:连接实例遇到报错:没有mysql客户端 …

目标检测YOLO系列从入门到精通技术详解100篇-【图像处理】图像分类

目录 前言 知识储备 图像分类基础知识 1.具体领域划分 2.图像分类问题的3层境界

Appium:一款强大的移动应用自动化测试工具

引言: 随着移动应用的普及和功能的不断增加,测试成为了确保应用质量和用户体验的重要环节。传统的手动测试方法已经无法满足日益增长的需求,因此自动化测试工具应运而生。在众多自动化测试工具中,Appium以其跨平台、开源和灵活性而…

php查询数据库,并通过表格展示

第一步:创建数据库 创建一个数据库php-crud 第二步:创建数据库表 在数据库php-crud下创建一个歌曲表song /*Navicat Premium Data TransferSource Server : MariaDBSource Server Type : MariaDBSource Server Version : 100605 (10.6.5-M…

【Python】【PyPi】搭建本地PyPi镜像源

文章目录 一、PyPi二、配置步骤2.1 安装pip2pi2.2 下载模块包到本地2.3 创建链接2.4 部署web服务2.5 web访问 三、使用本地镜像源来安装模块四、总结 一、PyPi PyPi,Python Package Index,Python包索引,一般是指由Python社区维护的Python软件…

Windows7下双网卡绑定(双网络冗余)

1.首先需要电脑主机里至少有两张网卡。 2.打开计算机管理,点击左侧的设备管理器: 3.点击展开右侧的 网络适配器: 4.如下是我们即将需要进行绑定的两张网卡: 5.右键点击第一张网卡,选择属性: 6.选择 分组 栏…

前端框架的虚拟DOM(Virtual DOM)

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

C++试卷(华南理工大学)

华南理工大学期末考试 《高级语言程序设计(I)》A卷 注意事项: 1. 考前请将密封线内各项信息填写清楚; 2. 所有答案写在答题纸上,答在其它地方无效; 3.考试形式:闭卷&#xff1b…

GC root 有哪些

文章目录 GC root 有哪些? GC root 有哪些? Thread-存活的线程。Java 虚拟机栈中的引用的对象。方法区中的类静态属性引用的对象。 (一般指被 static 修饰的对象,加载类的时候就加载到内存中。)方法区中的常量引用的对象。本地方法栈中的 …

基于SpringBoot的在线疫苗预防小程序

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的在线疫苗预防小程序,ja…

分数约分-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第20讲。 分数约分&#xf…

LeetCode:967连续查相同的数字(DFS)

题目 返回所有长度为 n 且满足其每两个连续位上的数字之间的差的绝对值为 k 的 非负整数 。 请注意,除了 数字 0 本身之外,答案中的每个数字都 不能 有前导零。例如,01 有一个前导零,所以是无效的;但 0 是有效的。 …

Google Gemini Pro:AI模型的新里程碑,开放API访问;Octo: 一个开源通用的机器人策略

🦉 AI新闻 🚀 Google Gemini Pro:AI模型的新里程碑,开放API访问 摘要:Google宣布推出了名为Gemini的AI模型,旨在使AI更加有用。Gemini分为Ultra、Pro和Nano三个版本,并已开始在产品中使用。Ge…

openEuler社区与9大海外开源基金会深入合作,构建全球开源新生态

数字经济高速发展下,国产操作系统开源生态建设近年来取得里程碑式的重要进展。其中以openEuler为代表的开源系统正走向国际,在全球化方面取得实质性突破。 12月15日,以“崛起数字时代,引领数智未来”为主题的操作系统大会2023在北…