簡體   English   中英

如何在本地刪除 docker 存儲庫的所有標簽?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM