docker 如何使microk8s ctr图像修剪

0vvn1miw  于 2023-03-29  发布在  Docker
关注(0)|答案(3)|浏览(151)

我在安装了microk 8 s和应用程序的服务器上收到磁盘空间不足警告。当我运行microk 8 s ctr image ls命令时,应用程序会出现多个镜像。Docker中的“docker image prune -f”命令在microk 8 s中是否有等效命令?或者是否有可能?

rn0zuynd

rn0zuynd1#

如果要从内置库中删除所有自定义添加的图像,可以执行以下操作:

# get all images that start with localhost:32000, output the results into image_ls file
sudo microk8s ctr images ls name~='localhost:32000' | awk {'print $1'} > image_ls 
# loop over file, remove each image
cat image_ls | while read line || [[ -n $line ]];
do
    microk8s ctr images rm $line
done;

将其放入.sh文件并运行脚本

myzjeezk

myzjeezk2#

您可以使用crictl来修剪未使用的映像,因为crictl与containerd兼容
1.使用www.example.com安装crictlhttps://github.com/kubernetes-sigs/cri-tools/blob/edf14e37007994d69f9b8cb3b1483a79b365b8eb/docs/crictl.md#install-crictl
1.使用microk 8 s containerd sudo crictl --runtime-endpoint unix:///var/snap/microk8s/common/run/containerd.sock images检查crictl是否正常工作
1.修剪未使用的图像sudo crictl --runtime-endpoint unix:///var/snap/microk8s/common/run/containerd.sock rmi --prune
文档说你也可以使用CONTAINER_RUNTIME_ENDPOINT,但是我不能让它工作。
更新:您也可以使用配置文件,添加下面的/etc/crictl.yaml:

runtime-endpoint: unix:///var/snap/microk8s/common/run/containerd.sock
d6kp6zgx

d6kp6zgx3#

一个班轮:

sudo microk8s ctr i ls name~='localhost:32000' -q|while read z;do sudo microk8s ctr i rm $z;done

您可以删除过滤器name~='localhost:32000'或使用它来匹配您想要清理的特定标记,例如:name~=':v5.2.0' .

注意:如果未指定过滤器,将删除所有本地镜像

相关问题