首页 > 解决方案 > Minikube 无法拉取本地 docker 镜像

问题描述

我正在尝试使用大使(负载均衡器)为 gRPC 服务创建映射。为了部署和映射服务,我创建了一个 yaml 文件,其中包含以下几行(以及其他行):

containers:
      - name: grpc-pep
        image: enm10k
        imagePullPolicy: IfNotPresent
        ports:

当我部署它并运行kubectl get pods时,我收到以下消息:

NAME                                             READY     STATUS         RESTARTS   AGE
ambassador-567f8c7c6-68bx6                       2/2       Running        3          3d
ambassador-567f8c7c6-c2n6z                       2/2       Running        3          3d
ambassador-567f8c7c6-kjznt                       2/2       Running        5          3d
grpc-pep-5f54b8d77b-f4l94                        0/1       ErrImagePull   0          3m

我正在尝试访问的图像收到 ErrImagePull 错误消息。enm10k 是一个 dockerhub 映像,我的印象是我不应该创建它。但是,即使我创建它,我也会收到以下错误消息:

tex@tex-ThinkPad-P50:~$ docker build -t enk10k .
WARN[0000] Unable to use system certificate pool: requires building with go 1.7 or later 
Error checking context: 'no permission to read from '/home/tex/.cpan/build/CPAN-Meta-YAML-0.018-YA9MFT/lib/CPAN/Meta/YAML.pm''.

当我尝试在不是主目录的地方构建它时:

$ docker build -t enm10k .
WARN[0000] Unable to use system certificate pool: requires building with go 1.7 or later 
Sending build context to Docker daemon 980.1 MB
Error response from daemon: unexpected error reading Dockerfile: read /var/lib/docker/tmp/docker-builder360563372/Dockerfile: is a directory

所以,我无法构建图像,找不到它,而且我不知道如何处理它。我已经设置了 minikube 环境,并且在 yaml 文件中$ eval $(minikube docker-env)使用了几乎所有的策略变体。imagePullPolicy

我不知道如何解决这个问题 - 希望有更多 Docker 知识的人可以帮助我。

标签: dockerkubernetesminikube

解决方案


您在文件中有错误yaml,因为它缺少存储库名称。

containers:
      - name: grpc-pep
        image: enm10k
        imagePullPolicy: IfNotPresent
        ports:

如果您访问hub.docker.com并搜索enm10k,您将看到 3 个存储库。在您的示例中,docker 不知道要拉哪个 repo。

yaml 文件应如下所示:

containers:
      - name: grpc-pep
        image: enm10k/grpc-hello-world
        imagePullPolicy: IfNotPresent
        ports:

您还可以查看有关如何获取gRPC 和 Ambassador的文档。


推荐阅读