我想在本地删除给定docker存储库上的所有标记。例如,如果我在名为“my_image:latest”和“my_image:sometag”的仓库上有两个标签,我想删除这两个标签。但是,我不想删除“another_image:latest”。
答案 0 :(得分:2)
主要是一行:
docker images | grep "$DOCKER_REPO" | awk '{system("docker rmi " "'"$DOCKER_REPO:"'" $2)}'
请记住,除非使用-f选项,否则无法删除正在使用的图像。
答案 1 :(得分:2)
您可以使用以下shell函数:
dockercleanrepo(){
docker images --no-trunc --format '{{.ID}} {{.Repository}}' \
| grep "$@" | awk '{ print $1 }' | xargs -t docker rmi
}
将其添加到bashrc,zshrc并使用它:
dockercleanrepo <your-repoitory>
还与此相关,请检查问题How to remove old and unused Docker images的答案。
答案 2 :(得分:1)
不知道自@jcmack发布答案以来是否有所改变,或者google容器注册表是否特殊但是它不能按原样工作;我适应了它:
docker images | grep "gcr.io/project-id" | awk '{system("docker rmi " $1 ":" $2)}'
答案 3 :(得分:1)
列出要删除的图像:
$ docker images --filter='reference=my_image' --format='{{.Repository}}:{{.Tag}}'
要同时删除它们,请与docker rmi
组合:
$ docker images --filter='reference=my_image' --format='{{.Repository}}:{{.Tag}}' | xargs docker rmi