minikube镜像缓存

作者: hyperjiang | 来源:发表于2020-03-17 12:03 被阅读0次

概述

为了能够离线使用和加快速度,我们可以把minikube所需的docker images缓存到本地文件系统,特别对于墙内的同学们是非常有用的。

查看本地缓存

minikube cache list

注:这些image文件实际上存放在~/.minikube/cache/images下面。

添加缓存

首先,在添加缓存之前,我们可以先运行eval $(minikube docker-env)让主机可以访问到minikube虚拟机里面运行的docker

跑完上面那个命令,你可以试试docker images看看minikube虚拟机里面已经有哪些image了,然后就可以开始添加image缓存了。

比如下面的命令是把kubernetesui/dashboard:v2.0.0-beta8kubernetesui/metrics-scraper:v1.0.2加入缓存:

minikube cache add kubernetesui/dashboard:v2.0.0-beta8
minikube cache add kubernetesui/metrics-scraper:v1.0.2

小技巧:上面这两个image在阿里云的缓存里面已经存在的,所以实际上我们可以从阿里云目录复制一份出来到kubernetesui目录下面,比如

cd ~/.minikube/cache/images
cp registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard_v2.0.0-beta8 ./kubernetesui/
cp registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper_v1.0.2 ./kubernetesui/

然后再运行添加缓存的命令就不需要去docker仓库下载,能省掉很多时间。

我们在第一次启动minikube的时候很多image本地都没有,所以下载会花一些时间,这时候你如果运行kubectl get pod -A可以看到一些pod的状态是ContainerCreating,这其实就是还在下载image,如果由于网络问题下载失败,状态就会变成ImagePullBackOff进行重试,如果还失败就会变成ErrImagePull,这时候我们可以通过kubectl describe命令来看看是拉取什么image失败了,比如:

kubectl describe -n kube-system pod nginx-ingress-controller-6fc5bcc8c9-s5tns

我们可以发现是拉取quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.26.1失败了,一种解决方案是我们可以先用虚拟机里面的docker从中国镜像把image拉取下来,比如:

docker pull quay.azk8s.cn/kubernetes-ingress-controller/nginx-ingress-controller:0.26.1

然后打上原本的tag:

docker tag quay.azk8s.cn/kubernetes-ingress-controller/nginx-ingress-controller:0.26.1 quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.26.1

然后运行下面的命令加入到minikube缓存:

minikube cache add quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.26.1

再举个例子,缓存vault:1.3.3

docker pull docker.mirrors.ustc.edu.cn/library/vault:1.3.3
docker tag docker.mirrors.ustc.edu.cn/library/vault:1.3.3 vault:1.3.3
minikube cache add vault:1.3.3 --logtostderr

删除缓存

minikube cache delete <image name>

相关文章

  • minikube镜像缓存

    概述 为了能够离线使用和加快速度,我们可以把minikube所需的docker images缓存到本地文件系统,特...

  • Minikube中使用本地镜像的方法

    在minikube中使用本地镜像很麻烦,经过本人验证,如下方法可以通过: 1.使用eval $(minikube ...

  • kubernetes minikube安装

    minikube安装过程遇到的问题 1、国外镜像拉取不下来问题2、mac brew cask 安装minikube...

  • Kubernetes Service & LB &

    准备工作 1、启用 minikube 的 ingress 插件 2、补全 ingress 插件所需的镜像 说明:网...

  • 每天5分钟玩转Docker容器技术(四)

    镜像的缓存特性 Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建...

  • Mac安装Minikube(不需要翻墙)

    在官方项目中,在搭建MiniKube的过程中,需要使用到谷歌官方的镜像,由于某些原因,镜像下载不下来。折腾了好几天...

  • 在minikube上使用本地docker镜像

    首先我们把本地一个docker容器生成一个自定义镜像 然后,让我们在minikube上运行自定义镜像 最后我们来放...

  • Docker-镜像

    镜像 base镜像 镜像分层结构 Dockerfile构建镜像 Docker构建镜像时会使用缓存,下载时也会 Do...

  • 教程 | conda 目录瘦身

    删除用不到的镜像 查看目前已有镜像 删除指定镜像,删掉用不到的镜像 清理缓存

  • 镜像的缓存特性

    摘自-----CloudMan Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使...

网友评论

    本文标题:minikube镜像缓存

    本文链接:https://www.haomeiwen.com/subject/uijaehtx.html