Linux系统Docker下面/var/lib/docker/overlay2磁盘空间清理

这篇具有很好参考价值的文章主要介绍了Linux系统Docker下面/var/lib/docker/overlay2磁盘空间清理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker下/var/lib/docker/overlay2空间清理办法

1. 查看磁盘占用

df -h

2. Docker 的内置 CLI 指令docker system df

可用于查询镜像(Images)、容器(Containers)和本地卷(Local Volumes)等空间使用大户的空间占用情况。

~]# docker system df

查看详细

~]# docker system df -v

3. 空间清理

【1】通过 Docker 内置的 CLI 指令docker system prune来进行自动空间清理。

~]# docker system prune --help

该指令默认会清除所有如下资源:

已停止的容器(container)

未被任何容器所使用的卷(volume)

未被任何容器所关联的网络(network)

所有悬空镜像(image)。

该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。添加-a 或 --all参数后,可以一并清除所有未使用的镜像和悬空镜像。

可以添加-f 或 --force参数用以忽略相关告警确认信息。

【2】另外除了system级别的,还有针对容器或是镜像级别的删除命令:

docker image prune:删除悬空的镜像。

docker container prune:删除无用的容器。

--默认情况下docker container prune命令会清理掉所有处于stopped状态的容器

--如果不想那么残忍统统都删掉,也可以使用--filter标志来筛选出不希望被清理掉的容器。例子:清除掉所有停掉的容器,但24内创建的除外:

--$ docker container prune --filter "until=24h"

docker volume prune:删除无用的卷。

docker network prune:删除无用的网络

【3】手动清除

对于悬空镜像和未使用镜像可以使用手动进行个别删除

1、删除所有悬空镜像,不删除未使用镜像

docker rmi $(docker images -f "dangling=true" -q)

2、删除所有未使用镜像和悬空镜像

docker rmi $(docker images -q)

3、清理卷

如果卷占用空间过高,可以清除一些不使用的卷,包括一些未被任何容器调用的卷(-v 详细信息中若显示 LINKS = 0,则是未被调用):

删除所有未被容器引用的卷:

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

4、容器清理

如果发现是容器占用过高的空间,可以手动删除一些:

删除所有已退出的容器:

docker rm -v $(docker ps -aq -f status=exited)

删除所有状态为dead的容器

docker rm -v $(docker ps -aq -f status=dead)

4. 查找系统中的大文件【以上三步仍然不可以的时候执行】

find /var/lib/docker/overlay2/ -type f -size +100M -print0 | xargs -0 du -h | sort -nr

# 查找指定目录下所有大于100M的所有文件

5. 对标准输入日志大小与数量进行限制

新建或修改/etc/docker/daemon.json,添加log-dirver和log-opts参数

vi /etc/docker/daemon.json

{

"log-driver":"json-file",

"log-opts": {"max-size":"3m", "max-file":"1"}

}

重启docker的守护线程

systemctl daemon-reload

systemctl restart docker

6. docker 清理空间命令

方法一:

删除悬空镜像

docker rmi $(docker images -f "dangling=true" -q)

docker image prune -a -f

显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID

sudo docker ps -a|grep Exited|awk '{print $1}'

#查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器

sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`

方法二:

#删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)

sudo docker rm $(sudo docker ps -a -q)

方法三:

#根据容器的状态,删除Exited状态的容器

sudo docker rm $(sudo docker ps -qf status=exited)

方法四:

#Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器。

sudo docker container prune

#删除所有镜像

sudo docker rmi $(docker images -q)

7. 实在没办法,只有把/var目录下所有日志文件清空

~]# for i in `find /var -name *.log*`;do >$i;done

然后重启node节点,因为有些日志文件被占用,清空后空间仍然无法释放文章来源地址https://www.toymoban.com/news/detail-460191.html

到了这里,关于Linux系统Docker下面/var/lib/docker/overlay2磁盘空间清理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • docker部署项目,/var/lib/docker/overlay2目录满了如何清理?

    今天突然发现跑服务器上的项目挂了,上去看了一下原来是磁盘满了。 看来是目录 /var/lib/docker/overlay2 下占满了磁盘,看看里面是什么。 这一块只是查找哪些文件占满了磁盘,不感兴趣的朋友可以不看。 /var/lib/docker 目录是 docker 的默认目录,进去看看 检索文件的最大深度

    2024年01月21日
    浏览(39)
  • /dev/mapper/centos-root或/var/lib/docker/overlay2 占满的解决方法

    实际清理过程如下(省略了不必要的部分) 1.查找占用过大的部分 2.以上可知是docker的镜像和容器的问题,查看是否属实 3.确实有很多无用的镜像和容器,开始清理 4.查看清理的效果 可见一下子就腾出了16G的空间 5.进一步清理(使用 Docker 的垃圾回收功能来清理废弃的镜像和容

    2024年03月17日
    浏览(50)
  • docker overlay2 清理

    使用命令进行运行容器时,没对日志文件进行限制,随着时间的增长,日志文件越来越大,如果写日志比较频繁,文件超过100g也是很正常. 第一种,找到对应文件进行删除 进入docker 的containers目录:cd /var/lib/docker/containers 查看容器文件夹占用内存大小: du -sh * 如找到大文件夹,进入该

    2024年02月15日
    浏览(47)
  • Docker:overlay2浅析以及解决overlay2 文件过大的问题

    最近在学习docker的实现时看到这么一个概念:Union File System,先让我们来介绍介绍它。 定义:联合文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unit

    2024年02月07日
    浏览(49)
  • Docker overlay2磁盘占用过高

    Docker overlay2磁盘占用过高主要有以下三个原因:   1、容器日志文件过大,未作限制   2、docker未用容器、镜像、缓存等过多   3、docker默认路径存放不合理   通过以下两条命令可以定位磁盘占用过高原因,可根据查询结果做相应处置。 1、df -h 容量查询 2、du -sh * 文

    2024年02月14日
    浏览(45)
  • Docker 深度清除镜像缓存 (overlay2)

    Docker 深度清除镜像缓存 (overlay2) 一般情况下,运维清理镜像是通过命令 docker rm i 删除镜像的。但是这条命令不会删除docker build命令产生的缓存文件。 这个时候需要使用 docker system 的系列命令来做相关处理。 输出: 参数: -a 删除全部未使用的镜像 -f 或 --force 不经过确认

    2024年02月08日
    浏览(40)
  • docker overlay2 是存放什么的?

    docker overlay2是Docker中的存储驱动之一,用于管理镜像和容器层的数据。它使用最小存储空间来存储像层这样的临时数据。 overlay2本质上是多层存储驱动。它将镜像和容器层都视为独立的匿名临时文件系统。然后通过联合挂载将这些层组合成所需的最终文件系统。 overlay2使用两个

    2024年02月15日
    浏览(44)
  • 不小心删除了docker/overlay2怎么办?

    服务器硬盘容量达到顶峰,没有空闲空间。利用df -h的时候查看到/data/docker/overlay2占用最大。以为这里面都是docker的缓存文件,删除也无妨,所以直接通过 rm -rf 命令删除。(没有做任何备份)删完之后整个人就傻了,所有的容器运行全部失败。 此时!不要慌,不要着急做其

    2024年02月15日
    浏览(49)
  • 亲测有效:docker清理Overlay2占用磁盘空间

    使用Docker过程中,长时间运行服务容器,导致不能进行上传文件等操作,通过命令 df -h 发现overlay占用较高。通过命令 docker system prune -a 清理无用镜像、缓存、挂载数据,也没有什么改变。 prune 指令默认会清除所有如下资源: 已停止的容器(container) 未被任何容器所使用的

    2024年02月08日
    浏览(55)
  • Docker overlay2文件busy,容器不能删除问题解决

    Error response from daemon: Driver overlay2 failed to remove root filesystem 21852249cce97a1ad5b631ca9f52c81b862d741591e0d337011a28d31992b64f: remove /var/lib/docker/overlay2/1a2b773cc1c55a606b23952dfd2695e49c5924061cb0744fee3e56694bad211e/merged: device or resource busy 1.查看所有挂载的设备 2.截取设备的进程id 3.清理进程(kill掉即可)

    2024年01月24日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包