4

我已使用以下命令成功将我的 Docker 容器映像推送到 gcr.io :

$ gcloud docker push gcr.io/project-id-123456/my-image

但是当我尝试创建一个新的 pod时,我收到以下错误:

$ kubectl run my-image --image=gcr.io/project-id-123456/my-image
CONTROLLER  CONTAINER(S)  IMAGE(S)                           SELECTOR      REPLICAS
my-image    my-image      gcr.io/project-id-123456/my-image  run=my-image  1

$ kubectl get pods
NAME            READY  STATUS                                                                                                   RESTARTS   AGE
my-image-of9x7  0/1    Error pulling image (latest) from gcr.io/project-id-123456/my-image, Untar exit status 1 unexpected EOF  0          5m

它也不会影响我的本地:

$ docker rmi -f $(docker images -q) # Clear local image cache
$ gcloud docker pull gcr.io/project-id-123456/my-image:latest
…
Error pulling image (latest) from gcr.io/project-id-123456/my-image, Untar re-exec error: exit status 1: output: unexpected EOF

有人可以建议我如何解决这个问题吗?

4

1 回答 1

4

好的,在 Docker 代码库中四处挖掘之后,我想我发现了一些与您所看到的内容类似的报告。

这个错误的显示方式在 1.7 中发生了变化,但这个线程似乎相关: https ://github.com/docker/docker/issues/14792

这让我转向了这个修复,它在 1.8 中登陆: https ://github.com/docker/docker/pull/15040

特别是,请参阅此评论: https ://github.com/docker/docker/pull/15040#issuecomment-125661037

该评论似乎表明这只是 v1 层的问题,因此我们对 v2 的 Beta 支持可能会解决此问题。

您可以通过以下方式推送到我们的 v2 测试版: gcloud docker --server=beta.gcr.io push beta.gcr.io/project-id-123456/...

然后,您可以简单地将 Pod 中的引用更改为“beta.gcr.io/...”,它将通过 v2 拉取。

于 2015-10-03T02:29:48.697 回答