清理Docker廢棄鏡像與緩存詳細(xì)圖文教程
1 場景
在使用Docker部署項(xiàng)目時(shí)失敗,提示no space left on device,沒有剩余空間,如下所示。

2 解決辦法
2.1 查看磁盤空間占用情況
在終端輸入以下命令
df -h

可以看到占用率都達(dá)到100%
2.2 查看 Docker 容器、鏡像、卷等資源的占用情況
在終端輸入以下命令
docker system df

在構(gòu)建項(xiàng)目時(shí),會(huì)產(chǎn)生Build Cache,真正使用的鏡像,是占不了太多的空間的。
2.3 清理
清理鏡像有兩種方式,作者目前了解到的分別有以下兩種方式,列了一下區(qū)別,大家按需使用。
| 命令 | docker rmi <IMAGE_ID_1> … | docker system prune -a |
|---|---|---|
| 功能 | 用于刪除指定的鏡像。你可以通過鏡像 ID 或者鏡像名稱來指定要?jiǎng)h除的鏡像,支持輸入多個(gè),空格隔開。 | 用于清理 Docker 系統(tǒng)中的不再使用的鏡像、緩存、容器和網(wǎng)絡(luò)等資源。它會(huì)刪除未使用的鏡像、停止的容器、無效的網(wǎng)絡(luò)等,以釋放磁盤空間。 |
| 范圍 | 只會(huì)刪除指定的鏡像。 | 清理整個(gè) Docker 系統(tǒng)中的未使用資源,包括未使用的鏡像、容器、網(wǎng)絡(luò)和數(shù)據(jù)卷等。 |
| 操作注意 | 需要明確指定要?jiǎng)h除的鏡像的 ID 或者名稱。在執(zhí)行該命令之前,請確保你要?jiǎng)h除的鏡像是不再需要的。 | 強(qiáng)制清理命令,它會(huì)刪除所有未使用的資源,包括未使用的鏡像、容器等。在執(zhí)行該命令之前,請確保你不再需要這些資源,因?yàn)椴僮魇遣豢赡娴摹?/td> |
作者這里使用的是 docker system prune -a, 正常情況下建議使用第一種,使用第二種的時(shí)候一定要注意。
2.3.1 清理指定鏡像
- 先查看所有得鏡像。
docker images

- 行以下命令,將 rmi 后邊的字符串換成自己想清理的 IMAGE ID,支持刪除多個(gè)
docker rmi 5457fb6ac112 01bbee84cc9c 4d81f08e4937
- 再次查看所有鏡像,發(fā)現(xiàn)鏡像刪除成功
- 如果遇到以下報(bào)錯(cuò),添加 -f 參數(shù)再刪除
Error response from daemon: conflict: unable to delete 5457fb6ac112 (must be forced) - image is referenced in multiple repositories
提示代表要?jiǎng)h除的鏡像被多個(gè)倉庫引用,無法直接刪除。如果你確定要?jiǎng)h除這個(gè)鏡像,可以使用強(qiáng)制刪除命令來刪除
- 執(zhí)行以下命令
docker rmi -f 5457fb6ac112 01bbee84cc9c 4d81f08e4937
2.3.2 清理所有廢棄鏡像與Build Cache
- 在終端輸入以下命令
docker system prune -a

- 會(huì)提示Are you sure you want to continue,是否繼續(xù),輸入 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 cache Are you sure you want to continue? [y/N] y Deleted Images: deleted: sha256:1c4f6085bbccd2e35f97973cbeb10f92da7ff1262914bb2426cb26ca982ba2fc deleted: sha256:d918c746d2b894403b51d05161b63b0a450187a67fcf3d554c523705d47b4f47 deleted: sha256:231a1ce2abdf3744abced50f9675d584e07e6b4523db1fb0f613b748ad06e946 deleted: sha256:f813c35c0538a81c322a6839bfd6d1616630a6b5c9aa2ee7f0f25a426a563d25 deleted: sha256:268e6417f2f8bda44087d663fea6dc2b7eab726fcd6b37434d594ddd12b4bd4e deleted: sha256:f2d9885d594165564996eeb6bf7d52f3dc5011ffdc9ed8fed6288724cd33b8de # =========================此處省略部分日志,太多了。。。。 Deleted build cache objects: w1c50dy2r45e6vo7n464zufhi wm32f28avtp3u1j729zwsqqhg ifbfsnqhsxa0lgpf8q583wt3p emv9b5icrzg3mt2o7qgytp44p rtum938pugfhp9i30lk7yaypa g24xa4962hmfp0wnmhyv3eehi sprlhorxphn4tu1idayycicez xm3zzvxi3ewm6fwmtpizv46lt n7372bzka4c96a4or52fa4k0u pcvjb2payp85tzepsjvnc8iw8 # =========================此處省略部分日志,太多了。。。。
- 清理完成,再次查看占用情況,清理成功

總結(jié)
到此這篇關(guān)于清理Docker廢棄鏡像與緩存的文章就介紹到這了,更多相關(guān)Docker廢棄鏡像與緩存清理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Dockerfile鏡像制作完整實(shí)例
本文詳細(xì)介紹了如何使用Docker制作鏡像,并通過實(shí)際應(yīng)用發(fā)版展示了制作過程,主要內(nèi)容包括創(chuàng)建和啟動(dòng)Docker容器的腳本(init.sh、start.sh、stop.sh、restart.sh),以及配置目錄,文章還討論了Docker容器IP地址的作用,并總結(jié)了制作新鏡像的基本步驟2024-11-11
Docker自動(dòng)部署Apache Tomcat的方法
這篇文章主要介紹了Docker自動(dòng)部署Apache Tomcat的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
Docker+Watchtower實(shí)現(xiàn)容器自動(dòng)更新的終極方案
在容器化應(yīng)用日益普及的今天,如何高效管理容器更新成為了每個(gè)?DevOps?工程師和開發(fā)者的必修課,下面我們就來看看如何使用?Watchtower?這一神器來實(shí)現(xiàn)?Docker?容器的自動(dòng)更新吧2025-05-05
docker時(shí)區(qū)問題和遷移數(shù)據(jù)問題
這篇文章主要介紹了docker時(shí)區(qū)問題和遷移數(shù)據(jù)問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
docker鏡像的導(dǎo)入和導(dǎo)出的實(shí)現(xiàn)
這篇文章主要介紹了docker鏡像的導(dǎo)入和導(dǎo)出的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
使用 Docker 部署 Apache Spark 集群的過程
本文介紹了如何使用Docker和DockerCompose快速部署一個(gè)包含一個(gè)Master節(jié)點(diǎn)和兩個(gè)Worker節(jié)點(diǎn)的Spark集群,通過創(chuàng)建docker-compose.yml文件并執(zhí)行相關(guān)命令,可以實(shí)現(xiàn)集群的構(gòu)建和啟動(dòng),感興趣的朋友一起看看吧2025-02-02
基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境的詳細(xì)教程
K8S全稱是Kubernetes,是一個(gè)全新的基于容器技術(shù)的分布式架構(gòu)領(lǐng)先方案,這篇文章主要介紹了基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境(環(huán)境搭建篇),對docker K8S持續(xù)集成交付環(huán)境相關(guān)知識感興趣的朋友一起看看吧2021-05-05
Docker Namespace容器隔離的實(shí)現(xiàn)
Namespace是Docker容器中的一種隔離機(jī)制,通過劃分資源獨(dú)立空間,確保容器之間互不干擾,本文主要介紹一下Docker Namespace容器隔離的實(shí)現(xiàn),感興趣的可以了解一下2024-11-11

