我最近开始使用Docker,从未意识到我应该使用Docker compose down而不是ctrl-c或Docker composestop来摆脱我的实验。我现在在本地有大量不需要的docker图像。
我是否可以运行一个标志来删除所有本地docker图像和容器?
类似docker rmi-all-force-all-flag的东西不存在,但我正在寻找具有类似想法的东西。
我最近开始使用Docker,从未意识到我应该使用Docker compose down而不是ctrl-c或Docker composestop来摆脱我的实验。我现在在本地有大量不需要的docker图像。
我是否可以运行一个标志来删除所有本地docker图像和容器?
类似docker rmi-all-force-all-flag的东西不存在,但我正在寻找具有类似想法的东西。
当前回答
如果需要在不调用docker的情况下删除:
rm -rf /var/lib/docker
这将直接从文件系统中删除所有docker映像/容器/卷。
其他回答
docker图像rm-f$(docker图像ls-a-q)
添加到techtabu接受的答案中,如果您在windows上使用docker,可以使用以下命令
for/F“delims=”('docker ps-A-q')中的%A做docker rm%A
这里,docker ps-a-q命令列出了所有图像,并将此列表逐一传递给docker rm
有关此类命令格式如何在windowscmd中工作的更多详细信息,请参阅本文。
要删除所有图像,请执行以下操作:
docker rmi -f $(docker images -a | awk {'print $3'})
说明:
docker图像-a|awk{'打印$3'}
此命令将返回所有图像id,然后使用其id删除图像。
docker image prune -a
删除所有未使用的图像,而不仅仅是悬挂的图像。将-f选项添加到武力
本地docker版本:17.09.0-ce,Gitcommit:afdb6d4,OS/Arch:darwin/amd64
$ docker image prune -h
Flag shorthand -h has been deprecated, please use --help
Usage: docker image prune [OPTIONS]
Remove unused images
Options:
-a, --all Remove all unused images, not just dangling ones
--filter filter Provide filter values (e.g. 'until=<timestamp>')
-f, --force Do not prompt for confirmation
--help Print usage
删除所有图像,但至少有一个容器与其关联
$ docker images prune -a
要获取图像的所有名称:docker-images-a-q,并在同一行中使用此命令删除所有图像。
docker image rmi $(docker images -a -q)
如果您将图像附加到至少一个正在运行的容器,最好先停止它们。
要删除10天前(240小时)创建的图像,请执行以下操作:
$ docker images prune -a --force --filter "until=240h"
可以使用以下命令进行验证:
$ docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.CreatedAt}}\t{{.Size}}'