Minikube 无法拉取本地 docker 图像

Minikube failing to pull local docker image

我正在尝试使用负载均衡器 ambassador 为 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 图像,我觉得我不应该创建它。但是,即使我 do 创建它,我也会收到以下错误消息:

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 环境 $ eval $(minikube docker-env) 并且我已经在 yaml 文件中使用了 imagePullPolicy 的几乎所有策略变体。

我不确定如何处理这个问题 - 希望有更多 Docker 知识的人可以帮助我。

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

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

如果您转到 hub.docker.com and search for enm10k,您将看到 3 个存储库。 在您的示例中,docker 不知道要提取哪个回购协议。

yaml 文件应如下所示:

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

您还可以查看有关如何获取 gRPC and Ambassador.

的文档