Skip to content

TKE 使用 containerd 组件时如何清理未使用的镜像

🏷️ TKE Kubernetes

TKE 集群的运行时组件现在仅支持使用 containerd。

容器服务运行一段时间后,磁盘空间会逐渐被镜像占用。

在使用 docker 运行时组件时,可以通过如下命令清理所有未正在被使用的镜像。

bash
docker system prune -a -f

containerd 组件会在磁盘占用达到设定的阈值时会自动清理镜像,但若是需要手动清理时则可以使用 containerd 提供的命令行工具 crictl,它类似于 Docker 的命令行工具 docker。比如 crictl images 可以列出所有镜像。

使用如下 crictl 命令可以清理所有未使用的镜像:

bash
crictl rmi --prune

不确定是否所有版本的 crictl rmi 都支持 --prune 参数,可以通过 crictl rmi --help 查看详细的帮助信息。

bash
[root@VM-32-10-tencentos ~]# crictl rmi --help
NAME:
   crictl rmi - Remove one or more images

USAGE:
   crictl rmi [command options] IMAGE-ID [IMAGE-ID...]

OPTIONS:
   --all, -a    Remove all images (default: false)
   --prune, -q  Remove all unused images (default: false)

我这里使用的 containerd 和 crictl 对应的版本如下:

bash
[root@VM-32-10-tencentos ~]# containerd --version
containerd github.com/containerd/containerd v1.6.9-tke.4 637394504cd0c8313df0a2e66e197422bba76b7a
[root@VM-32-10-tencentos ~]# crictl --version
crictl version 1.25.0