我最近开始使用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 rmi -f $(docker images -aq)
删除未使用的容器、映像和卷,然后运行以下命令
docker system prune -a -f
要删除所有图像,请执行以下操作:
docker rmi -f $(docker images -a | awk {'print $3'})
说明:
docker图像-a|awk{'打印$3'}
此命令将返回所有图像id,然后使用其id删除图像。
您可以这样尝试:
docker system prune
这是我使用的简短快速的解决方案
Docker提供了一个单独的命令,它将清理所有悬空(与容器无关)的资源(图像、容器、卷和网络):
docker system prune
要另外删除任何停止的容器和所有未使用的图像(而不仅仅是悬挂的图像),请在命令中添加-a标志:
docker system prune -a
有关详细信息,请访问链接
删除所有图像,但至少有一个容器与其关联
$ 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}}'