清理Docker廢棄鏡像與緩存詳細(xì)圖文教程
1 場景
在使用Docker部署項目時失敗,提示no space left on device,沒有剩余空間,如下所示。
2 解決辦法
2.1 查看磁盤空間占用情況
在終端輸入以下命令
df -h
可以看到占用率都達(dá)到100%
2.2 查看 Docker 容器、鏡像、卷等資源的占用情況
在終端輸入以下命令
docker system df
在構(gòu)建項目時,會產(chǎn)生Build Cache,真正使用的鏡像,是占不了太多的空間的。
2.3 清理
清理鏡像有兩種方式,作者目前了解到的分別有以下兩種方式,列了一下區(qū)別,大家按需使用。
命令 | docker rmi <IMAGE_ID_1> … | docker system prune -a |
---|---|---|
功能 | 用于刪除指定的鏡像。你可以通過鏡像 ID 或者鏡像名稱來指定要刪除的鏡像,支持輸入多個,空格隔開。 | 用于清理 Docker 系統(tǒng)中的不再使用的鏡像、緩存、容器和網(wǎng)絡(luò)等資源。它會刪除未使用的鏡像、停止的容器、無效的網(wǎng)絡(luò)等,以釋放磁盤空間。 |
范圍 | 只會刪除指定的鏡像。 | 清理整個 Docker 系統(tǒng)中的未使用資源,包括未使用的鏡像、容器、網(wǎng)絡(luò)和數(shù)據(jù)卷等。 |
操作注意 | 需要明確指定要刪除的鏡像的 ID 或者名稱。在執(zhí)行該命令之前,請確保你要刪除的鏡像是不再需要的。 | 強(qiáng)制清理命令,它會刪除所有未使用的資源,包括未使用的鏡像、容器等。在執(zhí)行該命令之前,請確保你不再需要這些資源,因為操作是不可逆的。 |
作者這里使用的是 docker system prune -a, 正常情況下建議使用第一種,使用第二種的時候一定要注意。
2.3.1 清理指定鏡像
- 先查看所有得鏡像。
docker images
- 行以下命令,將 rmi 后邊的字符串換成自己想清理的 IMAGE ID,支持刪除多個
docker rmi 5457fb6ac112 01bbee84cc9c 4d81f08e4937
- 再次查看所有鏡像,發(fā)現(xiàn)鏡像刪除成功
- 如果遇到以下報錯,添加 -f 參數(shù)再刪除
Error response from daemon: conflict: unable to delete 5457fb6ac112 (must be forced) - image is referenced in multiple repositories
提示代表要刪除的鏡像被多個倉庫引用,無法直接刪除。如果你確定要刪除這個鏡像,可以使用強(qiáng)制刪除命令來刪除
- 執(zhí)行以下命令
docker rmi -f 5457fb6ac112 01bbee84cc9c 4d81f08e4937
2.3.2 清理所有廢棄鏡像與Build Cache
- 在終端輸入以下命令
docker system prune -a
- 會提示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)文章
Docker+Watchtower實現(xiàn)容器自動更新的終極方案
在容器化應(yīng)用日益普及的今天,如何高效管理容器更新成為了每個?DevOps?工程師和開發(fā)者的必修課,下面我們就來看看如何使用?Watchtower?這一神器來實現(xiàn)?Docker?容器的自動更新吧2025-05-05docker時區(qū)問題和遷移數(shù)據(jù)問題
這篇文章主要介紹了docker時區(qū)問題和遷移數(shù)據(jù)問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12docker鏡像的導(dǎo)入和導(dǎo)出的實現(xiàn)
這篇文章主要介紹了docker鏡像的導(dǎo)入和導(dǎo)出的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01使用 Docker 部署 Apache Spark 集群的過程
本文介紹了如何使用Docker和DockerCompose快速部署一個包含一個Master節(jié)點和兩個Worker節(jié)點的Spark集群,通過創(chuàng)建docker-compose.yml文件并執(zhí)行相關(guān)命令,可以實現(xiàn)集群的構(gòu)建和啟動,感興趣的朋友一起看看吧2025-02-02基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境的詳細(xì)教程
K8S全稱是Kubernetes,是一個全新的基于容器技術(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