[英]How to remove all tags for a docker repository locally?
我想在本地刪除給定 docker 存儲庫上的所有標簽。 例如,如果我在名為“my_image:latest”和“my_image:sometag”的 repo 上有兩個標簽,我想刪除這兩個標簽。 但是,我不想刪除“another_image:latest”。
要列出要刪除的圖像:
$ docker images --filter='reference=my_image' --format='{{.Repository}}:{{.Tag}}'
要刪除它們,請與docker rmi
結合使用:
$ docker images --filter='reference=my_image' --format='{{.Repository}}:{{.Tag}}' | xargs docker rmi
在一行中主要是:
docker images | grep "$DOCKER_REPO" | awk '{system("docker rmi " "'"$DOCKER_REPO:"'" $2)}'
請記住,除非使用 -f 選項,否則無法刪除正在使用的圖像。
您可以使用以下 shell 函數:
dockercleanrepo(){
docker images --no-trunc --format '{{.ID}} {{.Repository}}' \
| grep "$@" | awk '{ print $1 }' | xargs -t docker rmi
}
將它添加到 bashrc, zshrc 並簡單地使用它:
dockercleanrepo <your-repoitory>
也與此相關,請查看問題如何刪除舊的和未使用的 Docker 鏡像的答案。
不確定自@jcmack 發布該答案后是否發生了變化,或者 google 容器注冊表是否特殊,但它沒有按原樣工作; 我改編了它:
docker images | grep "gcr.io/project-id" | awk '{system("docker rmi " $1 ":" $2)}'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.