docker批量刪除Tag=<none>
的臨時鏡像
在開發的時候,需要經常發布開發包,在使用docker build
構建鏡像的時候,同一個版本經常會使用相同tag,頻繁打包一段時間后,本地會出現很多Tag=<none>
的臨時鏡像,這時可以通過如下命令來批量刪除
命令一
docker rmi $(docker images | grep "none" | awk '{print $3}')
運行 docker rmi $(docker images | grep "none" | awk '{print $3}')
命令可以刪除所有標簽為 "none"
的Docker鏡像。這里是這個命令的分解及其工作原理:
docker images
:列出本地Docker鏡像。
grep "none"
:過濾輸出,只保留包含 "none"
字符串的行。通常,這些行表示沒有標簽的鏡像。
awk '{print $3}'
:使用awk命令從過濾后的行中提取第三列,這一列通常包含鏡像ID。
$(...)
:命令替換,將子命令的輸出作為參數傳遞給外部命令。
docker rmi
:刪除一個或多個Docker鏡像。
總結起來,這個命令會找到所有標簽為 “none” 的鏡像ID,并將這些ID傳遞給 docker rmi 命令,從而刪除這些鏡像。
命令二
docker rmi $(docker images -q -f dangling=true)
運行 docker rmi $(docker images -q -f dangling=true)
命令可以刪除所有懸空(dangling
)鏡像,即那些沒有被任何容器使用的鏡像。這個命令的作用及其工作原理如下:
docker images -q -f dangling=true
:
docker images
:列出本地Docker鏡像。
-q
:僅返回鏡像ID。
-f dangling=true
:只列出懸空鏡像。
$(...)
:命令替換,將子命令的輸出作為參數傳遞給外部命令。
docker rmi
:刪除一個或多個Docker鏡像。
總結起來,這個命令會找到所有懸空鏡像的ID,并將這些ID傳遞給docker rmi命令,從而刪除這些鏡像。