Docker 图像随时间消失

Docker images disappearing over time

我加载了一些 docker 图片 运行ning

docker load --input <file>

然后我可以在执行时看到这些图像

docker image ls

过了一会儿,图像开始消失。每隔几分钟,列出的图像就会越来越少。我还没有 运行 任何图像。这个问题的原因可能是什么?

编辑:此问题出现在 minikube VM 中的 docker。

既然你提到了 Docker daemon runs inside minikube VM, I assume that you might hit K8s Garbage collection 机制,它通过调整特定的阈值将系统利用率保持在适当的水平并减少未使用的容器(从图像构建)的数量。

这些驱逐thresholds are fully managed by Kubelet k8s node agent, cleaning uncertain images and containers according to the parameters(flags) propagated in kubelet configuration file.

因此,我想您可以通过查看某些阈值来调查 K8s 逐出行为,这些阈值在 kubelet 配置文件中进行了调整,该配置文件由 minikube 引导程序在以下路径 /var/lib/kubelet/config.yaml 中生成。

如@mk_sta 中所述,解决您需要的问题:

使用

创建或编辑/var/lib/kubelet/config.yaml
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
evictionHard:
    imagefs.available: "5%"

默认值为 15%

minikube stop
minikube start --extra-config=kubelet.config=/var/lib/kubelet/config.yaml

或在 docker 分区上释放更多 space。

https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/#create-the-config-file

https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/#hard-eviction-thresholds