猿问

请问如何删除旧的和未使用的码头形象

如何删除旧的和未使用的码头形象

在长时间运行码头时,系统中存在大量的图像。如何安全地同时删除所有未使用的Docker映像以释放存储空间?

此外,我还想删除几个月前提取的图像,这些图像具有正确的TAG.

所以,我不是要求只删除无标记的图像。我正在寻找一种方法来删除一般未使用的图像,其中包括未标记的图像和其他图像,比如几个月前使用正确的TAG.


守着星空守着你
浏览 447回答 3
3回答

慕莱坞森

码头1.13:Pr 26108和提交86de7c0引入一些新的命令,以帮助可视化对接守护进程数据在磁盘上占用的空间,并允许轻松清理“不必要”的多余空间。docker system prune将删除所有悬空数据(即:停止的容器、没有容器的卷和没有容器的图像)。甚至未使用的数据-a选择。你还拥有:docker container prunedocker image prunedocker network prunedocker volume prune为未用图像,使用docker image prune -a(用于移除悬挂物)和未经处理的图像)。警告:‘未用意思是“没有任何容器引用的图像”:在使用之前要小心-a.如上文所示阿升氏回答,&nbsp;docker system prune --all将移除所有未用图像不仅仅是悬空的.。这可能有点太过分了。结合docker xxx prune带着--filter期权是限制修剪的好方法(DockerSDKAPI 1.28最低,所以码头17.04+)目前支持的过滤器是:until (<timestamp>)-仅删除在给定时间戳之前创建的容器、图像和网络label&nbsp;(label=<key>,&nbsp;label=<key>=<value>,&nbsp;label!=<key>,或label!=<key>=<value>)-只使用(或)删除容器、图像、网络和卷。无,以防万一label!=...指定的标签。见“剪枝图像“举个例子。原答复(2016年9月)我通常会:docker&nbsp;rmi&nbsp;$(docker&nbsp;images&nbsp;--filter&nbsp;"dangling=true"&nbsp;-q&nbsp;--no-trunc)我有一个移除那些[悬空图像]的别名13:&nbsp;drmi这个dangling=true筛选器查找未使用的图像这样,不再被标记的图像引用的任何中间图像被删除。我也这么做第一为退出过程(集装箱)alias&nbsp;drmae='docker&nbsp;rm&nbsp;$(docker&nbsp;ps&nbsp;-qa&nbsp;--no-trunc&nbsp;--filter&nbsp;"status=exited")'如哈立兹指出在评论中:从技术上讲,在清理图像之前,您应该先清理容器,因为这样可以捕获更多的悬空图像和较少的错误。.杰斯·弗雷泽尔(Jfrazelle)有bashrc函数:dcleanup(){ &nbsp;&nbsp;&nbsp;&nbsp;docker&nbsp;rm&nbsp;-v&nbsp;$(docker&nbsp;ps&nbsp;--filter&nbsp;status=exited&nbsp;-q&nbsp;2>/dev/null)&nbsp;2>/dev/null &nbsp;&nbsp;&nbsp;&nbsp;docker&nbsp;rmi&nbsp;$(docker&nbsp;images&nbsp;--filter&nbsp;dangling=true&nbsp;-q&nbsp;2>/dev/null)&nbsp;2>/dev/null }要删除旧图像,而不仅仅是“未引用-悬挂”图像,您可以考虑docker-gc:一个简单的Docker容器和图像垃圾收集脚本。一个多小时前离开的容器被移除。删除后不属于任何剩余容器的图像。
随时随地看视频慕课网APP
我要回答