docker-archive / docker-registry

This is **DEPRECATED**! Please go to https://github.com/docker/distribution
Apache License 2.0
2.89k stars 877 forks source link

"Image Push failed unsupported protocol scheme" for private registry2.0 with nginx #1023

Closed xialingsc closed 8 years ago

xialingsc commented 8 years ago

I configed files with Deploying a registry server and Authentication for the Registry,and logined Successed,such as root@ubuntu:/home/lingsc/docker-registry# docker login -u testu -p testp -e '' devregistry:5043 WARNING: login credentials saved in /root/.dockercfg. Login Succeeded

I copy devregistry.crt to /etc/docker/certs.d/devregistry:5043/ca.crt too, and restart client docker

but when i push to the registry, it's return

The push refers to a repository [devregistry:5043/hello] (len: 1) 91c95931e552: Image push failed FATA[0000] Error pushing to registry: Put %5Chttps://%5Cdevregistry:5043/v2/hello/blobs/uploads/d8de9659-b230-4d3c-b2d9-4486fe027af0?_state=SHUBTNdDP9FLMIZipetlDzFNSG39TO3MI9sgKXdHkM17Ik5hbWUiOiJoZWxsbyIsIlVVSUQiOiJkOGRlOTY1OS1iMjMwLTRkM2MtYjJkOS00NDg2ZmUwMjdhZjAiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTUtMDctMjdUMDY6Mzk6NDUuMjM3MzcxMTk1WiJ9&digest=sha256%3Aa3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4: unsupported protocol scheme ""


docker version Client version: 1.6.2 Client API version: 1.18 Go version (client): go1.4.2 Git commit (client): 7c8fca2 OS/Arch (client): linux/amd64 Server version: 1.6.2 Server API version: 1.18 Go version (server): go1.4.2 Git commit (server): 7c8fca2

OS/Arch (server): linux/amd64

is there anybody can help me ?

dmp42 commented 8 years ago

You are on the legacy registry repository.

The new registry that you are trying to use lives under https://github.com/docker/distribution

Nevertheless, can you provide at least the following information?

https://github.com/docker/distribution/blob/master/CONTRIBUTING.md#if-you-have-not-found-an-existing-issue-that-describes-your-problem

From your log it seems that you have dangling antislashes (%5C). Please copy the exact command you ran.

xialingsc commented 8 years ago

Thanks for your reply. There are some information.

docker version

Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 7c8fca2
OS/Arch (client): linux/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): 7c8fca2
OS/Arch (server): linux/amd64

docker info

Containers: 21
Images: 65
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 107
 Dirperm1 Supported: false
Execution Driver: native-0.2
Kernel Version: 3.13.0-24-generic
Operating System: Ubuntu 14.04 LTS
CPUs: 24
Total Memory: 62.87 GiB
Name: ubuntu
ID: U3WQ:2EO2:XO6J:ISQA:HIJ4:ICQX:SOG5:OA4T:ALZ7:LVS5:EQVA:OSFV

docker exec 8ba39023f45f registry -version registry github.com/docker/distribution v2.0.1


There are all commands:

docker login -u testuser -p testpassword -e '' devregistry:5043 Email: WARNING: login credentials saved in /home/lingsc/.dockercfg. Login Succeeded

docker tag hello-world devregistry:5043/hello

docker push devregistry:5043/hello

The push refers to a repository [devregistry:5043/hello] (len: 1)
91c95931e552: Image push failed 
FATA[0000] Error pushing to registry: Put %5Chttps://%5Cdevregistry:5043/v2/hello/blobs/uploads/14f3024d-6581-42e1-b7a1-0f657dfcc791?_state=sXzvsWi71qbBEvM0M2-8Qh_UTq4Ll6j-pEcZjXPOjUd7Ik5hbWUiOiJoZWxsbyIsIlVVSUQiOiIxNGYzMDI0ZC02NTgxLTQyZTEtYjdhMS0wZjY1N2RmY2M3OTEiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTUtMDctMjhUMDA6NTc6MzguMjA2ODQ1Mjg5WiJ9&digest=sha256%3Aa3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4: unsupported protocol scheme "" 
dmp42 commented 8 years ago

@dmcgowan any idea?

timbod7 commented 8 years ago

I see the same problem. This is using the s3 storage backend.

Configuration:

$ docker version
Client version: 1.7.0
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 0baf609
OS/Arch (client): darwin/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64
$ docker info
Containers: 9
Images: 69
Storage Driver: aufs
 Root Dir: /mnt/sda1/var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 87
 Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 4.0.7-boot2docker
Operating System: Boot2Docker 1.7.1 (TCL 6.3); master : c202798 - Wed Jul 15 00:16:02 UTC 2015
CPUs: 4
Total Memory: 1.955 GiB
Name: boot2docker
ID: 3KYP:GRLV:N37M:BLHA:OTUW:DJDW:MZCR:JELQ:X5L4:MFUI:7SFC:P46D
Debug mode (server): true
File Descriptors: 11
Goroutines: 17
System Time: 2015-07-30T06:48:31.701666552Z
EventsListeners: 0
Init SHA1: 
Init Path: /usr/local/bin/docker
Docker Root Dir: /mnt/sda1/var/lib/docker
$ 
$ docker exec 9d3a6428e756 registry -version
registry github.com/docker/distribution v2.0.1
$ 

Commands:

$ docker tag -f 115cbcaef498 docker.XXXXXXta.com.au/XXXXXXta/python
$ docker push docker.XXXXXXta.com.au/XXXXXXta/python:latest
The push refers to a repository [docker.XXXXXXta.com.au/XXXXXXta/python] (len: 1)
115cbcaef498: Image push failed 
Error pushing to registry: Put %5Chttps://%5Cdocker.XXXXXXta.com.au/v2/XXXXXXta/python/blobs/uploads/e4c91600-21ad-4ba5-9634-23648944a6bf?_state=MhAArZDANNcopXZFQryt6RbZWSu5etxxTYFGvbBo7DF7Ik5hbWUiOiJoZWxpeHRhL3B5dGhvbiIsIlVVSUQiOiJlNGM5MTYwMC0yMWFkLTRiYTUtOTYzNC0yMzY0ODk0NGE2YmYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTUtMDctMzBUMDY6NTM6NDIuMDgwMTAxMTIyWiJ9&digest=sha256%3A2231bcc2a986f191b84742458a6b966f5265358682d1ac225b4956a77e48c421: unsupported protocol scheme ""
$ 

I can confirm this also happens with docker version 1.7.1

An excerpt from the docker logs seems to indicate that unnecessary escaping is occurring for some reason:

time="2015-07-30T07:18:02.310938870Z" level=info msg="Daemon has completed initialization" 
time="2015-07-30T07:18:02.310969882Z" level=info msg="Docker daemon" commit=786b29d execdriver=native-0.2 graphdriver=aufs version=1.7.1 
time="2015-07-30T07:18:02.393402810Z" level=info msg="Listening for HTTP on tcp (0.0.0.0:2376)" 
time="2015-07-30T07:24:27.971595211Z" level=debug msg="Calling POST /images/{name:.*}/push" 
time="2015-07-30T07:24:27.971690219Z" level=info msg="POST /v1.19/images/docker.XXXXXXta.com.au/XXXXXXta/python/push?tag=latest" 
time="2015-07-30T07:24:27.971709868Z" level=debug msg="Warning: client and server don't have the same version (client: 1.7.0, server: 1.7.1)" 
time="2015-07-30T07:24:28.074679527Z" level=debug msg="pinging registry endpoint https://docker.XXXXXXta.com.au/v0/" 
time="2015-07-30T07:24:28.074737333Z" level=debug msg="attempting v2 ping for registry endpoint https://docker.XXXXXXta.com.au/v2/" 
time="2015-07-30T07:24:28.074778228Z" level=debug msg="hostDir: /etc/docker/certs.d/docker.XXXXXXta.com.au" 
time="2015-07-30T07:24:28.400550951Z" level=debug msg="attempting v2 ping for registry endpoint https://docker.XXXXXXta.com.au/v2/" 
time="2015-07-30T07:24:28.400585235Z" level=debug msg="hostDir: /etc/docker/certs.d/docker.XXXXXXta.com.au" 
time="2015-07-30T07:24:28.713713697Z" level=debug msg="pinging registry endpoint https://docker.XXXXXXta.com.au/v0/" 
time="2015-07-30T07:24:28.713782209Z" level=debug msg="attempting v2 ping for registry endpoint https://docker.XXXXXXta.com.au/v2/" 
time="2015-07-30T07:24:28.713825847Z" level=debug msg="hostDir: /etc/docker/certs.d/docker.XXXXXXta.com.au" 
time="2015-07-30T07:24:29.068128629Z" level=debug msg="Checking latest against map[string]string{\"latest\":\"115cbcaef498cef26896ba46aa5473d15e7a4918b0ef5d06c26e88cf18cde6c4\"}" 
time="2015-07-30T07:24:29.068163164Z" level=debug msg="Getting authorization for XXXXXXta/python [pull push]" 
time="2015-07-30T07:24:29.068178538Z" level=debug msg="Pushing repository: docker.XXXXXXta.com.au/XXXXXXta/python:latest" 
time="2015-07-30T07:24:29.073881158Z" level=debug msg="Pushing layer: 115cbcaef498cef26896ba46aa5473d15e7a4918b0ef5d06c26e88cf18cde6c4" 
time="2015-07-30T07:24:32.755598460Z" level=debug msg="rendered layer for 115cbcaef498cef26896ba46aa5473d15e7a4918b0ef5d06c26e88cf18cde6c4 of [9647566] size" 
time="2015-07-30T07:24:32.755668398Z" level=debug msg="[registry] Calling \"POST\" https://docker.XXXXXXta.com.au/v2/XXXXXXta/python/blobs/uploads/" 
time="2015-07-30T07:24:32.755710489Z" level=debug msg="hostDir: /etc/docker/certs.d/docker.XXXXXXta.com.au" 
time="2015-07-30T07:24:33.273176481Z" level=debug msg="[registry] Calling \"PUT\" \\https://\\docker.XXXXXXta.com.au/v2/XXXXXXta/python/blobs/uploads/c95b22e1-7389-4e57-83e6-7afd20a02cc3?_state=zICPaA6_jANqmOJaXi9O8tJ_0yulH
DZA4wiN_A04WDl7Ik5hbWUiOiJoZWxpeHRhL3B5dGhvbiIsIlVVSUQiOiJjOTViMjJlMS03Mzg5LTRlNTctODNlNi03YWZkMjBhMDJjYzMiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTUtMDctMzBUMDc6MjQ6MzMuNzg3ODc0MDg5WiJ9" 
time="2015-07-30T07:24:33.273550948Z" level=debug msg="Using cached token for XXXXXX" 
timbod7 commented 8 years ago

This issue was resolve for me by removing incorrect backslash characters from the nginx config file.

dmp42 commented 8 years ago

@xialingsc see resolution over at https://github.com/docker/distribution/issues/794

xialingsc commented 8 years ago

@dmp42 Thanks. I works on it referencing on Installing Docker Registry 2.0.1 using self signed certificates,and I write a artcle for this in chinese at My Blog