我已经成功地将我的Docker容器映像推送到gcr。
$ 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
谁能告诉我如何解决这个问题?
好的,在挖掘了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的测试版支持可能会解决这个问题。
您可以通过以下方式推送到我们的v2 beta:
gcloud docker --server=beta.gcr.io push beta.gcr.io/project-id-123456/...
你可以简单地改变你的Pod中的引用为"beta.gcr.io/…",它将通过v2拉。