我想删除名称包含给定字符串(imagename
)的所有版本的docker图像.
我尝试了以下,但它似乎不起作用:
docker images | grep 'imagename' | xargs -I {} docker rmi
Ram*_*ler 87
请尝试以下方法:
docker rmi $(docker images |grep 'imagename')
Run Code Online (Sandbox Code Playgroud)
Windows Powershell:
docker rmi $(docker images --format "{{.Repository}}:{{.Tag}}"|findstr "imagename")
Run Code Online (Sandbox Code Playgroud)
Elt*_*man 53
稍微更精确的版本 - 仅对存储库名称进行grepping:
docker rmi $(docker images --format '{{.Repository}}:{{.Tag}}' | grep 'imagename')
Run Code Online (Sandbox Code Playgroud)
the*_*yak 24
docker rmi $(docker images --format '{{.Repository}}:{{.Tag}}' | grep 'imagename')
Run Code Online (Sandbox Code Playgroud)
udo*_*dan 11
docker images
实际上使用第一个位置参数作为图像名称来过滤.不需要grep和awk.该-q
选项将仅返回可以输入的匹配图像ID docker rmi
.
docker rmi --force $(docker images -q imagename | uniq)
Run Code Online (Sandbox Code Playgroud)
小智 7
只需--force
在命令末尾添加即可.喜欢:
sudo docker rmi <docker_image_id> --force
为了使其更智能,您可以在删除图像之前停止任何正在运行的容器:
sudo docker stop $(docker ps | grep <your_container_name> | awk '{print $1}')
sudo docker rm $(docker ps | grep <your_container_name> | awk '{print $1}')
sudo docker rmi $(docker images | grep <your_image_name> | awk '{print $3}') --force
Run Code Online (Sandbox Code Playgroud)
在docker ps
,$ 1是第1列,即docker容器id,$ 3是第3列,即docker image id
我发现我的答案更简单。
例如,您的图像名称是python_image
.
那么你的代码应该是:
docker rmi $(docker images --filter=reference='python_image' --format "{{.ID}}")
我希望这有帮助。
对我来说工作(Docker 版本 19.03.5):
docker rmi $(docker images 'imagename' -q)
Run Code Online (Sandbox Code Playgroud)
命令“ docker images 'imagename' -q ”将列出单引号参数的所有图像ID,因此将其与docker rmi(或用于强制的docker rmi -f)连接它将删除所有具有选定名称的图像
归档时间: |
|
查看次数: |
42554 次 |
最近记录: |