如何删除旧的和未使用的Docker映像

如何删除旧的和未使用的Docker映像,第1张

如何删除旧的和未使用的Docker映像

2016年9月更新:Docker 1.13:PR

26108和commit
86de7c0
引入了一些新命令,以帮助实现可视化docker守护程序数据在磁盘上占用了多少空间,并允许轻松清除“不需要的”多余空间。

docker systemprune

将删除所有悬空数据(即,顺序:容器停止,无容器的卷和无容器的映像)。甚至带有
-a
选项的未使用数据。

您还有:

  • docker container prune
  • docker image prune
  • docker network prune
  • docker volume prune

对于 未使用的 图像,请使用

docker image prune -a
(用于删除悬空 使用的图像)。
警告:“ 未使用 ”表示“没有任何容器引用的图像”:使用之前请小心
-a

如AL的答案所示,

dockersystem prune --all
将删除所有 未使用的 图像,而不仅仅是悬空的图像……这可能有点过多。

docker xxxprune
与该
--filter
选项结合使用可能是一种限制修剪的好方法(docker
SDK API 1.28最低,因此docker 17.04+)

当前支持的过滤器是:

  • until (<timestamp>)
    -仅删除在给定时间戳记之前创建的容器,图像和网络
  • label
    label=<key>
    label=<key>=<value>
    label!=<key>
    ,或
    label!=<key>=<value>
    ) -仅与除去容器,图像,网络,和卷(或 没有 ,如果
    label!=...
    被使用)指定的标签。

有关示例,请参见“ 修剪图像 ”。


原始答案(2016年9月)

我通常这样做:

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

我有一个别名来删除那些[悬挂的图像]
13:

drmi

dangling=true
过滤器发现未使用的图像

这样,将删除不再由标记图像引用的任何中间图像。

首先
对退出的进程(容器)执行相同的 *** 作

alias drmae='docker rm $(docker ps -qa --no-trunc --filter "status=exited")'

正如haridsv:

从技术上讲, 您应该在清理图像之前先清理容器,因为这样可以捕获更多的晃动图像并减少错误


Jess
Frazelle(jfrazelle)具有bashrc函数:

dcleanup(){    docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null    docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null}

要删除旧图像,而不仅仅是“未引用悬挂”图像,可以考虑

docker-gc


一个简单的Docker容器和图像垃圾收集脚本。

  • 一个多小时前退出的容器将被删除。
  • 之后不属于任何剩余容器的图像将被删除。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5026909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存