Por favor, tente com curl
-
curl -X GET http://localhost:5001/v1/search?q=image_name
Isso lhe dará resultados no formato json.
Por favor, verifique o post antigo Como pesquisar imagens do registro privado?
Estou configurando um registro privado do Docker usando a imagem oficial. Eu iniciei uma instância usando o seguinte arquivo docker-compose:
registry:
restart: always
image: registry:2.3.1
ports:
- 5000:5000
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
REGISTRY_HTTP_TLS_KEY: /certs/domain.key
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
SEARCH_BACKEND: sqlalchemy
SQLALCHEMY_INDEX_DATABASE: sqlite:////opt/sqlitedb/reg.db
volumes:
- /docker/registry/data:/var/lib/registry
- /docker/registry/certs:/certs
- /docker/registry/auth:/auth
- /docker/registry/search:/opt/sqlitedb
Eu consigo fazer login corretamente:
root@domain:/home/foo# docker login registry.domain.com:5000 Username (foo): foo Password: WARNING: login credentials saved in /root/.docker/config.json Login Succeeded
Eu posso enviar imagens para o registro privado sem nenhum problema:
root@domain:/home/foo# docker tag hello-world registry.domain.com:5000/hello-world root@domain:/home/foo# docker push registry.domain.com:5000/hello-world The push refers to a repository [registry.domain.com:5000/hello-world] 5f70bf18a086: Layer already exists b652ec3a27e7: Layer already exists latest: digest: sha256:fea8895f450959fa676bcc1df0611ea93823a735a01205fd8622846041d0c7cf size: 708
O que não consigo fazer é pesquisar:
root@domain:/home/foo# docker search registry.domain.com:5000/hello Error response from daemon: Unexpected status code 404
A instância do docker mostra isso:
registry_1 | time="2016-04-04T22:38:59Z" level=warning msg="error authorizing context: basic authentication challenge for realm \"Registry Realm\": invalid authorization credential" go.version=go1.5.3 http.request.host="registry.domain.com:5000" http.request.id=2f158656-545d-4cd0-a0a1-2d18f01843a4 http.request.method=GET http.request.remoteaddr="172.17.0.1:57196" http.request.uri="/v2/" http.request.useragent="docker/1.10.3 go/go1.5.3 git-commit/20f81dd kernel/4.2.0-27-generic os/linux arch/amd64" instance.id=cc656ad8-63a4-499e-bbde-ad797059e39e version=v2.3.1 registry_1 | 172.17.0.1 - - [04/Apr/2016:22:38:59 +0000] "GET /v2/ HTTP/1.1" 401 87 "" "docker/1.10.3 go/go1.5.3 git-commit/20f81dd kernel/4.2.0-27-generic os/linux arch/amd64" registry_1 | time="2016-04-04T22:38:59Z" level=warning msg="error authorizing context: basic authentication challenge for realm \"Registry Realm\": invalid authorization credential" go.version=go1.5.3 http.request.host="registry.domain.com:5000" http.request.id=6dcbc494-62b9-4f32-9c70-fece7c61a90b http.request.method=GET http.request.remoteaddr="172.17.0.1:57200" http.request.uri="/v2/" http.request.useragent="docker/1.10.3 go/go1.5.3 git-commit/20f81dd kernel/4.2.0-27-generic os/linux arch/amd64" instance.id=cc656ad8-63a4-499e-bbde-ad797059e39e version=v2.3.1 registry_1 | 172.17.0.1 - - [04/Apr/2016:22:38:59 +0000] "GET /v2/ HTTP/1.1" 401 87 "" "docker/1.10.3 go/go1.5.3 git-commit/20f81dd kernel/4.2.0-27-generic os/linux arch/amd64" registry_1 | 172.17.0.1 - - [04/Apr/2016:22:38:59 +0000] "GET /v1/search?q=hellow HTTP/1.1" 404 19 "" "docker/1.10.3 go/go1.5.3 git-commit/20f81dd kernel/4.2.0-27-generic os/linux arch/amd64"
Eu passei algumas horas pesquisando isso. O 404 aponta para o sqlalchemy do serviço de indexação que não está sendo implementado. Depois de passar pela versão mais recente da referência de configuração do registro , parece que a seção Search Backend não é mais válida. Então talvez a variável de env SEARCH_BACKEND no meu arquivo docker-compose esteja sendo ignorada e a indexação não esteja sendo feita (a pasta / opt / sqlitedb está vazia).
Por outro lado, o erro sugere que isso é um problema de autenticação.
Talvez o problema esteja nas diferenças entre v1 e v2 do registro. Eu não tenho experiência anterior com o registro, então acho que estou perdendo alguma coisa aqui. O que preciso fazer para que a pesquisa do docker esteja funcionando no meu registro particular?
Obrigado!
Por favor, tente com curl
-
curl -X GET http://localhost:5001/v1/search?q=image_name
Isso lhe dará resultados no formato json.
Por favor, verifique o post antigo Como pesquisar imagens do registro privado?