如何清理 docker 磁盘空间 附讲解(全)

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

前言

补充docker知识点,可看我之前的文章:Docker零基础从入门到精通(全)

docker 镜像特别容易占空间,稍微不注意可能磁盘爆满
通过df - h查看的时候,磁盘已经达到95%:
docker 清理,java,docker,容器,运维

1. Docker System 命令

先用docker system df 命令查看
再用docker system prune 清理

(清理命令 谨慎使用,注意作用以及波及范围!!! )
不确定的记得备份,或者 先食用该博文中的第二三章节!

1.1 docker system df

查看docker 占用的存储空间: docker system df

截图如下:

docker 清理,java,docker,容器,运维

具体的参数类型如下:

TYPE参数(docker 磁盘类型) 具体说明
Images 所有镜像占用空间
Containers 运行容器占用空间(主要是读写层)
Local Volumes 本地数据卷占用空间
Build Cache 镜像构建产生的缓存空间

RECLAIMABLE 代表可回收的大小

1.2 docker system prune

该命令主要用来 删除停止的容器、无用的数据卷、网络和无tag的镜像:docker system prune

补充其它删除容器的命令,以下两个命令主要用来删除所有的容器

  • $ docker rm -f $(docker ps -aq)
  • $ docker container rm -f $(docker container ls -aq)

执行 docker system prune 截图如下(再次使用docker system df 查看,占用空间已经被回收了):

docker 清理,java,docker,容器,运维
再次使用df -h 查询时,发现占用空间清除很多
docker 清理,java,docker,容器,运维

如果加入 -a参数,会更加暴力,会把数据库镜像及容器全删了(正常使用的不会被删除):docker system prune -a

慎用这个 docker system prune -a来清理,一定要先备份

2. 冗余容器或镜像

除了以上的方式进行回收处理,还有一些冗余过期的容器或者镜像

可看我这篇文章:批量删除docker过期停止的容器(全)

3. 限制容器日志

使用du -hs /var/lib/docker/ 命令 查看Docker所有相关文件,包括镜像、容器等

截图如下(这已经是我删除之后的):

docker 清理,java,docker,容器,运维

如果发现内存占用空间比较大,对应通过du 命令 一个个查看哪个容器或者镜像过大

  • 方案一:(❥❥❥)
    通过docker ps的命令, 发现 的某个容器id/var/lib/docker/containers/容器id 一致
    可以用 truncate命令,可以将该容器的日志文件归零
    具体命令:truncate -s 0 /var/lib/docker/containers/容器id

  • 方案二:(❥)
    直接在该容器目录下 执行rm -rf 即可
    (但该方法通过df -h 查看会发现其内存占用空间并没有很快释放,如果有用户在读取改文件的时候还是可以查看,只有重启系统的时候,空间才会被释放)


  • 方案三:(❥❥❥❥❥)
    长久有效,就限制docker 的日志文件大小(网友答案)

====
方案三补充1:

通过配置容器docker-compose的max-size选项

nginx:
  image: nginx:1.12.1
  restart: always
  logging:
    driver: "json-file"
    options:
      max-size: "5g"

====

方案三补充2:,生成一个json文件:vim /etc/docker/daemon.json,若有就不用新建,直接补充下面这两个即可

log-driver 代表文件名,不加系统使用默认

{
  "log-driver":"json-file",
  // 日志大小上限是500M,有3个文件
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

之后执行命令重启:

  • systemctl daemon-reload

  • systemctl restart docker

====

写在最后

如果有好的方案或者执行过程中遇到的bug 可底下评论区留言文章来源地址https://www.toymoban.com/news/detail-791228.html

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

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

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

相关文章

  • Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理

    Windows系统C盘空间优化进阶:磁盘清理与Docker日志管理 当您的Windows系统C盘空间告急时,除了深入挖掘并清理隐藏的大文件,如Docker日志外,不要忽视了Windows自带的“磁盘清理”工具。这是一个强大的工具,可以帮助您释放磁盘空间,让系统运行更加流畅。以下是如何结合使

    2024年04月09日
    浏览(56)
  • Linux系统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来进行自动空

    2024年02月06日
    浏览(53)
  • mac清理磁盘空间软件有哪些 mac清理磁盘空间怎么清理

    随着时间的推移,Mac电脑上的文件会越来越多,很快就会占满磁盘空间。这时候,我们需要一个好的Mac清理磁盘空间软件来释放空间,保持电脑的良好性能。那么,mac清理磁盘空间软件有哪些呢?接下来,我将为你介绍几款常用的软件,以及mac清理磁盘空间怎么清理。 一、

    2024年02月11日
    浏览(47)
  • docker磁盘空间爆满 通过overlay2 目录名查找对应容器

    看到占用磁盘空间最大的目录是docker存储根目录下的overlay2目录 再查看docker存储根目录下的overlay2目录下哪个目录占用空间最大 找出最大的这个overlay2目录的目录名是:ef129273a3f100feec4970bee90b0b83d9f1b170f6a76668eba9bdcfbf5f4ac8 下面需要使用这个目录名字符串去反向查找这个目录属于哪

    2024年02月16日
    浏览(67)
  • MAC磁盘空间不足怎么清理?MAC清理磁盘空间的五种方法

    MAC磁盘空间不足怎么清理?当我们使用苹果MAC一段时间后,就会有大量的垃圾文件占用磁盘空间,例如系统缓存文件、应用程序缓存文件、备份和重复文件、旧版的应用程序及其部件等,为了不影响电脑的后续使用,我们需要经常清理磁盘空间,下面小编为大家带来了MAC清理

    2024年01月22日
    浏览(73)
  • 电脑怎么查看磁盘空间?磁盘不足怎么清理?

    很多用户都会有这样的感觉,随着使用时间越来越长,电脑的性能也在逐渐下降,有两方面的原因:一方面,随着软件的升级,很多软件对硬件要求越来越高;另一方面,系统及软件运行产生的垃圾文件,悄悄捆绑安装的软件大量占用磁盘空间,影响系统性能,那么电脑怎么

    2024年02月10日
    浏览(89)
  • 【已解决】Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题

    很多同学拉取镜像使用一段时间后发现 C 盘快满了,把之前用过的镜像和容器删除,发现 WSL 挂载目录的虚拟磁盘大小没有变化,非常的奇怪。 其实,不同于 WSL1, WSL2 本质上是虚拟机 ,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件

    2024年02月16日
    浏览(95)
  • 清理Elasticsearch占用的内存和磁盘空间

    一,遇到OutOfMemoryError问题 打开Kibana,发现连不上Elasticsearch了,提示Cannot connect to the Elasticsearch cluster,检查: 发现是Elasticsearch service dead挂了。 继续检查错误日志/var/log/elasticsearch/elasticsearch.log 疑似Elasticsearch内存溢出。 通过 确实发现系统内存几乎100% ; 进一步的对各程序的

    2024年04月16日
    浏览(52)
  • 如何清理docker在var目录下的大量空间占用

    Docker 在 `/var` 目录下可能会产生大量空间占用,主要原因是镜像、容器、数据卷和临时文件的累积。要清理这些资源,你可以使用以下方法: **注意:这些操作会删除你的 Docker 资源,所以在执行前,请确保已备份重要数据。** 1. 删除未使用的 Docker 镜像 运行以下命令删除所

    2024年02月09日
    浏览(84)
  • Linux CentOS 服务器清理磁盘空间

    首先根目录下使用[df -ah]命令查询磁盘空间占用情况。 发现[/根目录]下面磁盘占用100% 进入根目录,查询大文件与目录 查看GB以上文件夹目录并且排序,可以使用以下命令: 然后不断执行上面的过程,进入大文件目录,定位到大文件 我这里最终找到是Tomcat下面logs日志占据了20多

    2024年02月05日
    浏览(71)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包