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

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

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


当前回答

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

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

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

其他回答

以下是我使用的命令,并将其放在批处理文件中以删除所有内容:

echo“正在删除容器:”&&if[-n“$(docker container ls-aq)”]; 然后docker容器stop$(docker容器ls-aq);码头装卸工集装箱rm$(码头集装箱ls-aq);fi;echo“正在删除图像:”&&如果[-n“$(docker images-aq)”];然后docker rmi-f$(docker图像-aq);fi;echo“正在删除卷:”&&if[-n“$(docker volumels-q)“];然后docker volume rm$(docker volume ls-q;fi;echo“正在删除网络:”&&if[-n“$(docker network ls|awk”{print$1“”$2}‘|grep-v‘ID|bridge|host|none‘|awk‘{print$1}’)“];然后docker网络rm$(docker网络ls | awk“{print$1”“$2}”|grep-v“ID|bridge|host|none”|awk“{print$1}”);fi;

添加到techtabu接受的答案中,如果您在windows上使用docker,可以使用以下命令

for/F“delims=”('docker ps-A-q')中的%A做docker rm%A

这里,docker ps-a-q命令列出了所有图像,并将此列表逐一传递给docker rm

有关此类命令格式如何在windowscmd中工作的更多详细信息,请参阅本文。

对于Linux Ubuntu用户,下面对我有用。注意事项-它将删除所有内容。

要删除容器及其关联的卷,请使用以下方法:

sudo docker rm -vf $(sudo docker ps -a -q)

要删除图像,请使用以下内容:

sudo docker rmi -f $(sudo docker images -a -q)

这是我使用的简短快速的解决方案

Docker提供了一个单独的命令,它将清理所有悬空(与容器无关)的资源(图像、容器、卷和网络):

docker system prune

要另外删除任何停止的容器和所有未使用的图像(而不仅仅是悬挂的图像),请在命令中添加-a标志:

docker system prune -a

有关详细信息,请访问链接

docker images -f dangling=true
docker image prune