Can't push Windows based images to private registry >= 2.7.0

Hi everyone,

I am using a private registry on Ubuntu 18.04.1 LTS (with insecure access from Windows Server 2016).

Uploading Windows images from Windows Server 2016 works fine with registry version <= 2.6.2.
But if I use registry version >= 2.7.0, I get following error on the Windows console during docker push:
received unexpected HTTP status: 500 Internal Server Error

When I look into the logs of the registry container, I see messages like these:
manifest blob unknown: blob unknown to registry

I tested these configurations with different registry versions:
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker run -d -p 5555:5000 --restart always --name registry registry:2

I attached the logs for registry 2.6.2 (good case) and registry 2.7.1 (bad case):
Logs_Registry_2.6.2.txt
Logs_Registry_2.7.1.txt

Tested with my own Docker image as well as with the hello-world image (both based on nanoserver).

The push of the Linux based hello-world image works fine, even with registry >= 2.7.0.

This is the docker version output on Ubuntu:

Client:
 Version:           18.09.1
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        4c52b90
 Built:             Wed Jan  9 19:35:31 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       4c52b90
  Built:            Wed Jan  9 19:02:44 2019
  OS/Arch:          linux/amd64
  Experimental:     true

This is the docker version output on Windows Server:

Client:
 Version:           18.09.1
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        20b67756d0
 Built:             unknown-buildtime
 OS/Arch:           windows/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.24)
  Go version:       go1.10.6
  Git commit:       20b67756d0
  Built:            01/09/2019 17:09:57
  OS/Arch:          windows/amd64
  Experimental:     false

I found out, that the problem does not occur with registry 2.7, if I set the allow-nondistributable-artifacts at the Docker client (in C:\ProgramData\docker\config\daemon.json).

Of course this is only a workaround, not a real solution.

What goes wrong here?

Thanks in advance for your replies

1 Like