我最近开始使用Docker,从未意识到我应该使用Docker compose down而不是ctrl-c或Docker composestop来摆脱我的实验。我现在在本地有大量不需要的docker图像。

我是否可以运行一个标志来删除所有本地docker图像和容器?

类似docker rmi-all-force-all-flag的东西不存在,但我正在寻找具有类似想法的东西。


当前回答

仅删除所有图像,然后运行以下命令

docker rmi -f $(docker images -aq) 

删除未使用的容器、映像和卷,然后运行以下命令

docker system prune -a -f 

其他回答

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

xargs的另一种方式(仅限Unix)

docker image ls -q | xargs -I {} docker image rm -f {}

要删除所有图像,请执行以下操作:

docker rmi -f $(docker images -a | awk {'print $3'})

说明:

docker图像-a|awk{'打印$3'}

此命令将返回所有图像id,然后使用其id删除图像。

简单方便的命令

删除所有图像

docker rmi $(docker images -a)

删除处于退出状态的容器

docker rm $(docker ps -a -f status=exited -q)

删除处于已创建状态的容器

docker rm $(docker ps -a -f status=created -q)

注意:移除所有容器,然后移除图像

Windows中存在一个错误,即删除映像后无法回收磁盘空间。重新启动Docker/Windows不起作用。

如果您使用的是Docker Desktop,以下方法对我有效。请转到疑难解答->清理/清除数据。这可以为您节省大量磁盘空间,可能比您想要的更多。

请注意:这会删除所有内容,因此在执行此操作之前请三思!