4

次のコマンドを使用して、Docker コンテナー イメージを gcr.io に正常にプッシュしました。

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

しかし、新しいポッドを作成しようとすると、次のエラーが発生します。

$ 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 のベータ サポートはこの問題を回避する可能性があります。

次の方法で 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 に答える