docker如何刪除懸空鏡像
docker刪除懸空鏡像
前言
由于公司剛進行前后端分離的操作,并且使用了docker的方式來進行運維部署,極大的提升了部署的效率。
但是:
由于正式環(huán)境沒有辦法直接鏈接互聯(lián)網(wǎng)和公司的docker hub, 所以每次只能是使用docker save + docker load 的方式進行,時間一長發(fā)現(xiàn)本地的服務器中存在大量的舊的鏡像,非常不利于我們的導出,所以就想寫一個命令來刪除掉那些沒有使用的歷史鏡像,本文章內容由此而來。
懸空鏡像
我們在build鏡像的過程中,可能會產(chǎn)生一些臨時的 不具有Tag 或者是 即沒有Tag 也沒有名稱的鏡像 他們的名稱一般都是<none>
docker官方提供的方式
$ docker rmi $(docker images -f "dangling=true" -q)
-f
:表示filter
,過濾-q
:表示只顯示鏡像ID;
自定義方式
通過管道的方式來刪除鏡像,例如:
$ docker images | grep none | awk 'BEGIN{ print "docker rmi \\" } {imageId=$3; print imageId" \\" } END{ print "" }' | sh
這個命令的含義是,先執(zhí)行docker image命令,然后在查詢結果中過濾出包含 none 的數(shù)據(jù),最后在匹配到的結果中先打印 docker rmi \
, 然后再打印數(shù)據(jù)的第三列再每一行中添加 \
字符串,最后在匹配結果的最后輸出空白字符,
執(zhí)行后的結果如下:
$ docker images | grep none | awk 'BEGIN{ print "docker rmi \\" } {imageId=$3; print imageId" \\" } END{ print "" }' docker rmi \ 6dbd6f7d4324 \ ded29c866e3e \ 6a2d7905d3fa \ fa539c873a18 \ 1fa6ec26a6d9 \
哈哈哈哈,這個命令我能說純粹是為了學習一下 awk
的用法,其實還有稍微簡單一點的做法,例如:
$ docker rmi $(docker images | grep none | awk '{print $3}')
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
docker-compose部署eureka服務端、客戶端的案例代碼
這篇文章主要介紹了docker-compose部署eureka服務端、客戶端,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03Docker快速部署gitlab+gitlab-runner實例
這篇文章主要介紹了Docker快速部署gitlab+gitlab-runner實例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06Docker搭建Redis5.0并掛載數(shù)據(jù)
本文主要介紹了Docker搭建Redis5.0并掛載數(shù)據(jù),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2021-07-07使用 docker部署tomcat并接入skywalking的使用
這里主要介紹了使用 docker 部署 tomact 并接入 skywalking 的使用,因為在網(wǎng)上并沒有查到太多相關的信息,所以這里記錄下來,需要對有需求的小伙伴提供一些幫助2021-04-04Docker?compose一鍵安裝mirai搭建QQ機器人最快操作方法
這篇文章主要介紹了Docker?compose一鍵安裝mirai,搭建QQ機器人最快方法,詳細介紹了mirai基本操作,結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04