distribution: Docker push failed: unexpected EOF

# docker push myregistry.com:5000/google_containers/skydns:2015-10-13-8c72f8c
The push refers to a repository [myregistry.com:5000/google_containers/skydns]
5f70bf18a086: Layer already exists 
f9b42de57572: Layer already exists 
3c35e36d8df2: Layer already exists 
5e868bdcb028: Layer already exists 
7f02483a9752: Pushing [==================================================>]  2.43 MB/2.43 MB
unexpected EOF

docker/distribution version:

# docker version
Client:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   9e83765
 Built:        Thu Feb 11 20:39:58 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   9e83765
 Built:        Thu Feb 11 20:39:58 2016
 OS/Arch:      linux/amd64

# bin/registry --version
bin/registry github.com/docker/distribution v2.2.1-79-g93d9070

docker daemon error log:

time="2016-03-28T20:56:54.123551972+08:00" level=error msg="Upload failed, retrying: unexpected EOF"

distribution log:

time="2016-03-28T20:51:57+08:00" level=info msg="response completed" go.version=go1.5.2 http.request.host="10.x.x.x:5000" http.request.id=c0a2fbf8-7549-481c-a4d9-58868e00102a http.request.method=POST http.request.remoteaddr="10.x.x.x:37077" 

http.request.uri="/v2/google_containers/skydns/blobs/uploads/" http.request.useragent="docker/1.10.1 go/go1.5.3 git-commit/9e83765 kernel/3.10.83-1-tlinux2-0021.tl1 os/linux arch/amd64" http.response.duration=4.476794ms http.response.status=202 http.response.written=0 instance.id=3fdcab9e-d54e-438a-ab02-97448f1c2bb3 version=v2.2.1-79-g93d9070 

10.x.x.x - - [28/Mar/2016:20:51:57 +0800] "POST /v2/google_containers/skydns/blobs/uploads/ HTTP/1.1" 202 0 "" "docker/1.10.1 go/go1.5.3 git-commit/9e83765 kernel/3.10.83 os/linux arch/amd64"

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 25 (6 by maintainers)

Commits related to this issue

Most upvoted comments

I got the same error , my fault was simply that I have a wrong path, ECR repo dosnet’ exist for my case. Check your target repo

@urzds: Unfortunately there’s no direct way to delete a layer. Layers are used by one or more images, and to delete a layer, you have to delete all the images that use it.

The simplest way, if all the images on your machine can be easily replaced, is to clear /var/lib/docker and start over. Otherwise, you’ll need to keep deleting overlapping images until docker build actually replaces all the layers in the image. It should be easy to tell if it is creating new layers or not, because it says ---> Using cache whenever it reuses an existing layer.