Error running pod with image from gcr.io

10/2/2015

I've successfully pushed my Docker container image to gcr.io with the following command:

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

But when I try to create a new pod I get the following error:

$ 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

It doesn't pull on my local as well:

$ 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

Can someone please suggest me how to fix this?

-- Petr Shevtsov
google-container-registry
google-kubernetes-engine
kubernetes

1 Answer

10/3/2015

Ok, after digging around in the Docker code base, I think I have found some similar reports of what you are seeing.

The way this error is displayed changed in 1.7, but this thread seems related: https://github.com/docker/docker/issues/14792

This turned me onto this fix, which landed in 1.8: https://github.com/docker/docker/pull/15040

In particular, see this comment: https://github.com/docker/docker/pull/15040#issuecomment-125661037

The comment seems to indicate that this is only a problem for v1 layers, so our Beta support for v2 may work around this issue.

You can push to our v2 beta via: gcloud docker --server=beta.gcr.io push beta.gcr.io/project-id-123456/...

You can then simply change the reference in your Pod to "beta.gcr.io/..." and it will pull via v2.

-- mattmoor
Source: StackOverflow