我试图运行一个码头形象,我已经建立了本地与Kubernetes。
获取以下错误
Failed to pull image "myImage": rpc error: code = Unknown desc = Error response from daemon: pull access denied for myImage, repository does not exist or may require 'docker login'
在yaml文件中,我已指定为
image: myImage
imagePullPolicy: IfNotPresent
在本地,我使用的是docker-desktop和minikube。
我已经尝试了多种方法,但唯一的事情是工作,使tar的myImage和加载在minikube。我已经尝试使用eval $(minikube docker-env),但在此之后,我的形象是无法建立,因为它是拉基础形象从组织nexus服务器。有人能建议任何其他方式吗?
3条答案
按热度按时间ars1skjm1#
很遗憾,我还不能发表评论,所以我不得不发布一个答案。您试图拉取的映像
myImage
不存在于您的kubernetes集群的本地映像缓存中。运行docker image ls
命令应该会产生一个本地可用映像的列表。如果docker在本地找不到映像,它将(默认情况下),然后转到Docker Hub查找映像。由于列出的映像没有someOrganization\
之类的前缀,因此假定该映像是DockerHub本身正式发布的映像。由于您的本地构建映像不是“这是一个官方的Dockerhub镜像,它不知道运行什么。所以问题的核心是你的minikube不能访问你建立镜像的地方。不幸的是我以前没有使用过minikube,所以我不能评论如何使用它的任何复杂之处。如果我这样留下我的答案,我会失职,虽然,因此,请查看minikube的文档(参考:https://minikube.sigs.k8s.io/docs/handbook/pushing/#1-pushing-directly-to-the-in-cluster-docker-daemon-docker-env)您在评估方面做得很对.所以...你的minikube不是股票/香草和它拉从一个公司回购?听起来像你需要改变你的minikube或你应该重新评估你正在使用的基础映像和修复Dockerfile。
ghg1uchk2#
要解决此问题,请将
imagePullPolicy
设置为Never
。确保在构建映像之前设置
eval $(minikube docker-env)
。whitzsjs3#
也许这是有点晚了,但...如果有人有同样的问题,这里是我如何解决这样的事情:
imagePullPolicy: Never
minikube image load myImage
做完这一切,才照常继续:
kubectl apply -f whereverTheFileIs.yaml