首页 > 系统相关 >centos7清理docker垃圾文件

centos7清理docker垃圾文件

时间:2022-12-14 14:12:29浏览次数:91  
标签:volume 容器 dangling 清理 centos7 垃圾文件 镜像 docker

相信很多朋友都有这个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

7877b1bc27d39cb0b3151ba6e4f9a258.png

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

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

 

标签:volume,容器,dangling,清理,centos7,垃圾文件,镜像,docker
From: https://www.cnblogs.com/yakniu/p/16981894.html

相关文章

  • DK-centoa7安装docker-compose
    ###重要表述大家好,我是DK。在经过我:"6*8=8?"天的"苦心孤诣、挖空心思、殚精竭虑、绞尽脑汁、刿心刳腹",终于总结出了这"无人匹敌"的文章。最后我得出了一个强有力的......
  • centos7 redis5.0以后版本 集群部署示例
    简言1.redis5.0版本以前的集群部署是使用ruby脚本完成的,略为复杂2.本篇博客讲解redis5.0版本以后的集群部署,由于集成到了create_cluster中(位置:redis根目录/utils/create-c......
  • centos7 redis5.0以前版本 集群部署示例 - 第一篇
    简言1.redis5.0版本以前的集群部署是使用ruby脚本完成的,ruby脚本的安装少略麻烦(主要原因是系统自动安装的版本太低,无法部署集群,必须手动安装)2.redis5.0版本以后的集群部署......
  • 基于Wechaty+Docker打造一个ChatGPT机器人
    所需资源云服务器(国外)我的配置:腾讯香港轻量云2H2G30MDockerGithub地址:https://github.com/fuergaosi233/wechat-chatgpt文章来自:与时团队-小染,以及我的部分修改,我......
  • Docker 安装,常用命令
    安装Docker官方所有操作系统安装教程:InstallDockerEngineonCentOS|DockerDocumentation,其中CentOS安装docker引擎的代码:安装yum-utils,配置库的地址sudoyuminst......
  • Linux启动docker容器后,修改防火墙报错Error response from daemon: driver failed pro
    解决方案:原因:在我们启动了Docker后,我们再对防火墙firewalld进行操作,就会发生上述报错,详细原因:docker服务启动时定义的自定义链DOCKER,当centos7firewall被清掉时,firewa......
  • DELL服务器基于centos7安装OMSA
    DELL服务器基于centos7安装OMSA参考链接:https://www.cnblogs.com/sky-cheng/p/14951071.htmlhttps://www.dell.com/community/Systems-Management-General/Has-Centos7......
  • VMware安装Centos7超详细过程(图文)
    本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下1.软硬件准备软件:推荐使用VMwear,我用的是VMwear12镜像:CentOS7,如果......
  • Centos7 卸载自带的OpenJDK
    一、查询系统是否已经安装jdkrpm-qa|grepjava二、卸载已安装的jdkrpm-e--nodepsjava-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64rpm-e--nodepsjava-1.8.0-open......
  • centos7连接网络
    https://blog.csdn.net/jujudeyueyue/article/details/121358663?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167091800516800213055718%2522%252C%2522scm......