相信很多朋友都有这个docker容器导致主机磁盘空间满了的问题,应用容器在宿主机上长期运行,应用实例启停容器,会产生大量的停止的容器,无容器使用的数据卷、网络配置,无容器依赖的镜像,这些垃圾日积月累,会影响到宿主机的运行状态,造成机子卡顿等现象。因此,需要对这些宿主机的垃圾进行清理.下面我们来看看怎么清理.

系统:centos 7.x(64位)

1.查看docker磁盘使用情况

docker system df

TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE

Images              28                  9                   13.13GB             8.008GB (61%)

Containers          9                   9                   266.3MB             0B (0%)

Local Volumes       2                   2                   3.314GB             0B (0%)

Build Cache         0                   0                   0B                  0B

此命令可以得知:

实例上一共有28个镜像,镜像占用了13.13G的磁盘,容器有9个在运行,占用了266.3MB的磁盘,可回收的(RECLAIMABLE)磁盘空间为61%.

2.清理磁盘空间

docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及 dangling 镜像(即无 tag 的镜像,参考What are Docker : images?).docker system prune -a命令清理得更加彻底,可以将没有容器使用 Docker 镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的 Docker 镜像都删掉了...所以使用之前一定要想清楚

docker system prune

ps:

可以看到罗列出4种会被prune的对象以及其他信息,包括:

1)stopped containers, 不是运行状态的container

2)unused volumes,不被任何container引用的volume,所谓dangling volume,一般删除了某个container后,可能会产生这样的volume,可以通过docker rm -v避免这种dangling volume

3)unused network,不被任何container引用的network

4)dangling images,不被任何container引用的image

5)每个被删除的对象都能看到它的ID,比如container ID、volume ID

6)最后有个释放空间大小的summary

3.清理docker镜像

当你镜像太多的时候,但你又不知道那些镜像在用,那些没在用的时候,可以使用下面的命令来处理:

docker rmi $(docker images -qf "dangling=true")

当然这里还提供一个这样的命令,只清除超过创建时间超过24小时的镜像:

docker image prune -a --filter "until=24h"

4.清理Docker容器日志

ls -lh $(find /var/lib/docker/containers/ -name *-json.log)

找到最大的那个日志,然后执行:

cat /dev/null >json.log

or

把所有的容器日志都清理掉:

cat /dev/null > *-json.log

ps:

删除所有容器

docker rm -f $(sudo docker ps -qa)

删除所有关闭的容器

docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm

删除所有dangling数据卷(即无用的Volume)

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

再次显示所有的容器和数据卷,确保没有残留

docker ps -a

docker volume ls

好了,以上介绍的命令请大家根据自己的情况去进行执行,最后提醒一句,执行前先确认清楚那些是可以删 可以停的,不然到时候搞出问题来的话,别来找我.

centos7清理docker垃圾文件的更多相关文章

  1. 如何清理Macbook垃圾文件

    如何清理Macbook垃圾文件,腾出更多硬盘空间 在Macbook使用久之后,会发现本来还富裕的硬盘,变得越来越少,尤其现在Macbook使用容量很小的固态硬盘.在此种情况下,该如何清理Macbook ...

  2. 一键清理系统垃圾文件bat

    历史比较久远了,可做一定参考. @echo off echo 正在清理系统垃圾文件,请稍等...... del /f /s /q %systemdrive%*.tmp del /f /s /q %sy ...

  3. Ubuntu 16.04安装BleachBit清理系统垃圾文件

    在LInux下不同于Windows会产生系统垃圾,但是Linux会产生安装软件时的依赖包,比如卸载一个软件,其依赖包是不会删除的.但是可以通过以下命令解决: #清理旧版本的软件缓存 sudo apt- ...

  4. linux清理 clientmqueue 垃圾文件防止 inode 被占满

    #find /var/spool/clientmqueue/ -type -f |xargs rm -f

  5. 一键清理Windows垃圾的BAT文件代码

    @echo off color 0atitle win7一键清理系统垃圾echo ★☆ ★☆ ★☆ ★☆ ★☆★☆★☆ ★☆ ★☆ ★☆ ★☆★echo ★☆ ★☆ ★☆ ★☆ ★☆★☆★☆ ★☆ ★ ...

  6. [windows]c盘瘦身、系统盘清理临时文件、缓存等垃圾文件

    前言 虽然现在已经9102年了硬盘空间越来越大越便宜,但win系统用久了系统盘还是会渐渐变小的,公司的电脑系统盘就已经不够用了经常爆红,这个时候两个简单快速高效的办法 1.扩大系统盘空间,可以使用 w ...

  7. Revo Uninstaller Pro - 真正彻底卸载软件不留垃圾的强大神器!(清理安装残留文件/注册表)

    大家都知道 Windows 在卸载软件时总是不够彻底,系统C盘总会留下大量难以辨别和清理的垃圾文件和临时文件,时间长了注册表也会变得非常臃肿,不仅浪费硬盘空间,而且也会明显拖慢系统响应和启动速度. R ...

  8. 清理C盘系统垃圾文件-批处理方式

    很多时候安装软件越来越多,部分软件产生的临时文件.垃圾文件常常存在于C盘系统盘中:日积夜累直接导致可用的系统盘空间越来越小,直到没有多余的空间为止, 最后可能的结果是系统异常.软件无法正常运行:此时可 ...

  9. [教训] windows 电脑的垃圾文件清理...

    坑你没商量! 这个名叫 “清除系统垃圾.bat“ 的文件在网上传播很广,但是,却出现了错误的版本,如果按照它逐条执行,将导致系统文件夹被一锅端,只能再重装的悲剧! 举个栗子: 错误版本:http:// ...

  10. Atitit.论图片类型 垃圾文件的识别与清理  流程与设计原则 与api概要设计 v2 pbj

    Atitit.论图片类型 垃圾文件的识别与清理  流程与设计原则 与api概要设计 v2 pbj 1. 俩个问题::识别垃圾文件与清理策略1 2. 如何识别垃圾图片1 2.1. 体积过小文件<1 ...

随机推荐

  1. 《Terraform 101 从入门到实践》 第一章 Terraform初相识

    <Terraform 101 从入门到实践>这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看. 初闻不知Terraform, ...

  2. countdownlatch应用场景

    场景1 让多个线程等待:模拟并发,让并发线程一起执行 为了模拟高并发,让一组线程在指定时刻(秒杀时间)执行抢购,这些线程在准备就绪后,进行等待(CountDownLatch.await()),直到秒杀 ...

  3. Redis-03 数据格式和基础命令

    1 单进程   Redis采用单进程模型来处理客户端的请求.对读写等时间的响应是通过对epoll函数的包装来做到的.Redis的实际处理速度完全依靠主进程的执行效率.   Epoll是Linux内核为 ...

  4. 这是一篇乖巧的草稿——vscode上传代码到代码托管平台GitHub

    一.在GitHub上创建一个远程仓库: 以上,就创建好了一个名为pythonStudy的仓库,现在先别把它关掉,先最小化 二.安装版本管理工具git:git属于无脑安装,可以更改安装路径 打开项目文件 ...

  5. P2_小程序简介

    小程序与普通网页开发的区别 运行环境不同 网页运行在浏览器环境中 小程序运行在微信环境中 API 不同 由于运行环境的不同,所以小程序中,无法调用 DOM 和 BOM 的 API. 但是,小程序中可以 ...

  6. JuiceFS 在火山引擎边缘计算的应用实践

    火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算.网络.存储.安全.智能为核心能力的新一代分布式云计算解决方案. 01- 边 ...

  7. html+css+js实现一个简易日历

    0.效果预览 只实现了日历最基础的功能,当前日期红色显示,可通过上方的左右按钮查看上一月或下一月的日期. 1.HTML部分 1 <body> 2 <div id="cldF ...

  8. php中 mysql 中文乱码解决办法

     首先要保证是utf-8编码或者支持中文的编码 2.Windows下修改方法 MySQL安装目录下的my-default.ini改为my.ini文件 [client]节点 default-charac ...

  9. Shell命令-基础

    Shell命令 1 变量 定义变量时,变量名不加美元符号$,注意,变量名和等号之间不能有空格 a="myname" 用语句给变量赋值时, for file in `ls /etc` ...

  10. js手动触发页面元素点击事件,自定义点击事件模拟点击

    // initEvent事件已经弃用1. 创建MouseEvents事件const clickEvent = document.createEvent('MouseEvents')2. 初始化点击事件 ...