Kubernetes无法在本地运行docker映像生成
我正在尝试运行一个docker映像,这是我与Kubernetes在本地构建的 这是我的命令行:Kubernetes无法在本地运行docker映像生成,kubernetes,minikube,Kubernetes,Minikube,我正在尝试运行一个docker映像,这是我与Kubernetes在本地构建的 这是我的命令行: kubectl run myImage --image=myImage --port 3030 --image-pull-policy=IfNotPresent 我看到很多人说,我们需要添加--image pull policy=IfNotPresent标志,以便Kubernetes可以在本地而不是Docker Hub查找图像,但我仍然会遇到这个错误(从pod、服务和部署上的Minikube仪表板)
kubectl run myImage --image=myImage --port 3030 --image-pull-policy=IfNotPresent
我看到很多人说,我们需要添加--image pull policy=IfNotPresent
标志,以便Kubernetes可以在本地而不是Docker Hub查找图像,但我仍然会遇到这个错误(从pod、服务和部署上的Minikube仪表板)
未能提取映像“myImage”:rpc错误:code=Unknown desc=来自守护进程的错误响应:myImage的提取访问被拒绝,存储库不存在或可能需要“docker登录”
但这里似乎还有另一个问题,我也尝试了--image pull policy=Never
,但它也不起作用
有什么想法吗?minikube中没有
图像
Minikube使用单独的docker守护程序
。这就是为什么,即使图像存在于您的机器中,它仍然在minikube中丢失
首先,将图像发送到minikube
docker save myImage | (eval $(minikube docker-env) && docker load)
此命令将把图像保存为tar存档,然后自己将图像加载到minikube中
接下来,使用部署中的映像,并将映像提取策略设置为IfNotPresent
kubectl run myImage --image=myImage --port 3030 --image-pull-policy=IfNotPresent
您在docker中创建的映像在Minikube中不可用,因为Minikube有自己的docker守护程序,它会在那里检查docker映像和DockerHub
按照以下步骤访问Minikube Docker守护程序,构建和部署Docker映像:
使用minikubedocker env命令
,该命令输出将本地docker守护程序指向minikube内部docker注册表所需的环境变量
minikube docker环境导出docker\u TLS\u VERIFY=“1”导出
DOCKER_主机=”tcp://172.17.0.2:2376“出口
DOCKER_CERT_PATH=“/home/user/.minikube/certs”导出
MINIKUBE\u ACTIVE\u DOCKERD=“MINIKUBE”
#要将shell指向minikube的docker守护进程,请运行:eval$(minikube-p minikube docker env)
要应用这些变量
估价$(minikube-p minikube码头环境)
现在需要再次构建映像,以便将其安装在minikube注册表中,而不是本地注册表中:
docker build-t forketyfork/你好世界
forketyfork/hello world是docker映像的名称
通过yaml将映像部署到kubernetes或Minkube
kubectl create-f helloworld.yml
helloworld.yml是yml/yaml文件的名称
现在kubectl get pods
获取pods的状态
作为进一步参考,正常kubernetes集群上的情况会发生什么?如何定位我的群集使用的docker守护程序?@AvikAggarwal,kubernetes群集的每个节点都有一个docker守护程序在运行。请告诉Windows用户应该做什么,因为eval在中不起作用windows@SherryJain,你能试试这个答案,看看它是否有效吗?