Docker镜像清理
运行docker system df
命令:
|
|
最后一列RECLAIMABLE字段标明了可回收的磁盘空间大小,此处表示有74.21GB的docker镜像可以收回,而containers、volumes等没有可回收的空间。
可以回收的镜像分为两类:dangling和其他未被container关联的镜像。
dangling可以理解为TAG空的某些镜像,使用命令docker images -f dangling=true
可以找出来,如下是在某节点上:
[root@VM_100_4_centos ~]# docker images -f dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
ccr.ccs.tencentyun.com/middleware/skywalking-agent <none> 1054bfb1c79a 3 weeks ago 689MB
ccr.ccs.tencentyun.com/middleware/logstash-logs <none> a0e0f37728bf 2 months ago 805MB
ccr.ccs.tencentyun.com/middleware/log-clean <none> b4fe723fcd28 3 months ago 747MB
ago 747MB
ccr.ccs.tencentyun.com/middleware/clean-job <none> 53aac26b0560 3 months ago 747MB
要删除上面这些dangling镜像,执行命令docker image prune
即可。
[root@VM_100_4_centos ~]# docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: ccr.ccs.tencentyun.com/gwy-middleware/clean-job@sha256:2633cc3ad0abc3dd632befecb5dcf90465021dde27e3cc0dcec2a7c37bfa1a50
deleted: sha256:77c50813e2090e2a45c4988eece1bdb79672c0dec070fad7eec1179e743c06e2
deleted: sha256:cdd7d4f6cc290f6220c3ee07061f64227646e1efdf9382204a150c735bd5a028
deleted: sha256:5c603aa4622920d7b242ab6e106538a4a5d72d72febef6e1e60d5d2c515f2311
untagged: ccr.ccs.tencentyun.com/gwy-middleware/filebeat-logs@sha256:e9ed0280250d74eb3ff9d506fd275cad280e3e781afd745aab5f0226e28d111e
deleted: sha256:45db79ccd3b44940c85c4979c3b307907d723bc7e4379d77abfecb5ca006e030
deleted: sha256:eb93a48f29bba12835ade4123e2bd1538d80b755f621369704675a9c19b18f65
......
Total reclaimed space: 1.478GB
如果要删除所有未被使用的镜像,包括dangling镜像,可以用docker image prune -a
,这里可以加上时间参数,比如删除30天(720小时)前创建的所有不再使用的镜像。
[root@VM_100_4_centos ~]# docker image prune -a --force --filter "until=720h"
Deleted Images:
untagged: ccr.ccs.tencentyun.com/gwy-cloud/guowy-cloud-zuul:202103041715
untagged: ccr.ccs.tencentyun.com/gwy-cloud/guowy-cloud-zuul@sha256:9e2d18d259582ca6a04b27d1609c8201a648f8feae37ff984f237dc4e907da6b
deleted: sha256:95f7d7107c50e77f0aa4a93ace02f031ae29edd13b56531757ed86fd63b9cc04
deleted: sha256:68d9605658fa91174c1867a5f91d6b6cc063f3ace1fbb061c72abbc84ea5de5b
Total reclaimed space: 63.23GB
对比docker system df
可以看到效果,释放了60多GB的空间。该节点的磁盘空间使用率也从原来的83%的降到了18%。
[root@VM_100_4_centos ~]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 131 33 12.36GB 8.979GB (72%)
Containers 65 59 3.287MB 0B (0%)
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
同理,回收containers、volumes磁盘空间的方法是一样的。
而docker提供了一个删除所有未使用的资源的命令docker system prune -a
,这包括了container状态是exited的情况。