当前位置:首页 » 《随便一记》 » 正文

【Docker】清理Docker废弃镜像与缓存

28 人参与  2024年09月29日 18:40  分类 : 《随便一记》  评论

点击全文阅读


1 场景

在使用Docker部署项目时失败,提示no space left on device,没有剩余空间,如下所示。
image.png

2 解决办法

2.1 查看磁盘空间占用情况

在终端输入以下命令

df -h

image.png
可以看到占用率都达到100%

2.2 查看 Docker 容器、镜像、卷等资源的占用情况

在终端输入以下命令

docker system df

image.png
在构建项目时,会产生Build Cache,真正使用的镜像,是占不了太多的空间的。

2.3 清理

清理镜像有两种方式,作者目前了解到的分别有以下两种方式,列了一下区别,大家按需使用。

命令docker rmi <IMAGE_ID_1> …docker system prune -a
功能用于删除指定的镜像。你可以通过镜像 ID 或者镜像名称来指定要删除的镜像,支持输入多个,空格隔开。用于清理 Docker 系统中的不再使用的镜像、缓存、容器和网络等资源。它会删除未使用的镜像、停止的容器、无效的网络等,以释放磁盘空间。
范围只会删除指定的镜像。清理整个 Docker 系统中的未使用资源,包括未使用的镜像、容器、网络和数据卷等。
操作注意需要明确指定要删除的镜像的 ID 或者名称。在执行该命令之前,请确保你要删除的镜像是不再需要的。强制清理命令,它会删除所有未使用的资源,包括未使用的镜像、容器等。在执行该命令之前,请确保你不再需要这些资源,因为操作是不可逆的。

作者这里使用的是 docker system prune -a, 正常情况下建议使用第一种,使用第二种的时候一定要注意。

2.3.1 清理指定镜像

先查看所有得镜像。
docker images

image.png

行以下命令,将 rmi 后边的字符串换成自己想清理的 IMAGE ID,支持删除多个
docker rmi 5457fb6ac112 01bbee84cc9c 4d81f08e4937
再次查看所有镜像,发现镜像删除成功如果遇到以下报错,添加 -f 参数再删除

Error response from daemon: conflict: unable to delete 5457fb6ac112 (must be forced) - image is referenced in multiple repositories
提示代表要删除的镜像被多个仓库引用,无法直接删除。如果你确定要删除这个镜像,可以使用强制删除命令来删除

执行以下命令
docker rmi -f 5457fb6ac112 01bbee84cc9c 4d81f08e4937

2.3.2 清理所有废弃镜像与Build Cache

在终端输入以下命令
docker system prune -a

image.png

会提示Are you sure you want to continue,是否继续,输入 y 回车即可,就可以看到如下日志。
WARNING! This will remove:  - all stopped containers  - all networks not used by at least one container  - all images without at least one container associated to them  - all build cacheAre you sure you want to continue? [y/N] yDeleted Images:deleted: sha256:1c4f6085bbccd2e35f97973cbeb10f92da7ff1262914bb2426cb26ca982ba2fcdeleted: sha256:d918c746d2b894403b51d05161b63b0a450187a67fcf3d554c523705d47b4f47deleted: sha256:231a1ce2abdf3744abced50f9675d584e07e6b4523db1fb0f613b748ad06e946deleted: sha256:f813c35c0538a81c322a6839bfd6d1616630a6b5c9aa2ee7f0f25a426a563d25deleted: sha256:268e6417f2f8bda44087d663fea6dc2b7eab726fcd6b37434d594ddd12b4bd4edeleted: sha256:f2d9885d594165564996eeb6bf7d52f3dc5011ffdc9ed8fed6288724cd33b8de# =========================此处省略部分日志,太多了。。。。Deleted build cache objects:w1c50dy2r45e6vo7n464zufhiwm32f28avtp3u1j729zwsqqhgifbfsnqhsxa0lgpf8q583wt3pemv9b5icrzg3mt2o7qgytp44prtum938pugfhp9i30lk7yaypag24xa4962hmfp0wnmhyv3eehisprlhorxphn4tu1idayycicezxm3zzvxi3ewm6fwmtpizv46ltn7372bzka4c96a4or52fa4k0upcvjb2payp85tzepsjvnc8iw8# =========================此处省略部分日志,太多了。。。。
清理完成,再次查看占用情况,清理成功

image.png


点击全文阅读


本文链接:http://zhangshiyu.com/post/166372.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1