Kubernetes无法运行本地构建的Docker映像

qni6mghb  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(3)|浏览(307)

我试图运行一个码头形象,我已经建立了本地与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服务器。有人能建议任何其他方式吗?

ars1skjm

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。

ghg1uchk

ghg1uchk2#

要解决此问题,请将imagePullPolicy设置为Never
确保在构建映像之前设置eval $(minikube docker-env)

whitzsjs

whitzsjs3#

也许这是有点晚了,但...如果有人有同样的问题,这里是我如何解决这样的事情:

  • 您需要将“Never”作为imagePullPolicy传递:

imagePullPolicy: Never

  • 您需要在minikube中加载图像:

minikube image load myImage
做完这一切,才照常继续:
kubectl apply -f whereverTheFileIs.yaml

相关问题