如何清理镜像

概述

本文介绍如何清理 Docker 镜像、驱逐的 POD 以及私有镜像仓库的空间。


如何查找占用空间最大的目录

du -h --max-depth=1
du -h --max-depth=1 --exclude=./proc
du -h --max-depth=1 --exclude=./proc --exclude=./tmp

image.png


如何将 Docker 的所有 none 镜像全部删除

使用下面的命令将 docker 镜像以 <none> 开头显示的镜像全部删除:

Pasted image 20240330124221

docker images | grep "^<none>" | awk '{print $3}' | xargs docker image rm

如何批量删除被驱逐的 POD

清理命令

以下命令可以批量清理 Evicted 和 Terminating 状态的 POD。

# 删除所有 Evicted 状态的 POD
kubectl get pods | grep Evicted | awk '{print $1}' | xargs kubectl delete pod
 
# 强制删除 Terminating 状态的 POD
kubectl get pods -n hy | grep Terminating | awk '{print $1}' | xargs kubectl delete pod -n hy --force --grace-period=0

image.png

相关文档: 命名空间删除失败


如何清理私有镜像服务器的镜像文件

执行下面的命令可以清理镜像残留文件:

image.png

步骤 1: 删除镜像索引

首先到 registry 的映射目录里面删除需要清理的镜像索引文件,存放位置是 docker/registry/v2/repositories 目录:

image.png

步骤 2: 执行垃圾回收

然后执行下面的命令清理实际文件:

docker exec 871929b0167e bin/registry garbage-collect /etc/docker/registry/config.yml

相关文档: 搭建私有镜像服务器


返回: Kubernetes