运行私人dockerregistry中的search命令的身份validation问题

我正在使用官方图像设置私人Dockerregistry。 我已经使用下面的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 

我可以login:

 root @ domain:/ home / foo#docker login registry.domain.com:5000
用户名(foo):foo
密码: 
警告:login凭证保存在/root/.docker/config.json中
login成功

我可以将图像推送到私人registry没有任何问题:

 root @ domain:/ home / foo#docker标签hello-world registry.domain.com:5000/hello-world
 root @ domain:/ home / foo#docker push registry.domain.com:5000/hello-world
推送是指一个仓库[registry.domain.com:5000/hello-world]
 5f70bf18a086:图层已经存在 
 b652ec3a27e7:图层已经存在 
最新消息:sha256:fea8895f450959fa676bcc1df0611ea93823a735a01205fd8622846041d0c7cf尺寸:708

我不能做的是search:

 root @ domain:/ home / foo#docker search registry.domain.com:5000/hello
来自守护程序的错误响应:意外的状态码404

docker实例吐出这个:

 registry_1 | 时间=“2016-04-04T22:38:59Z”level = warning msg =“错误授权上下文:领域的基本authentication挑战”Registry Realm“:无效的授权凭证”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 | 时间=“2016-04-04T22:38:59Z”level = warning msg =“错误授权上下文:领域的基本authentication挑战”Registry Realm“:无效授权凭证”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“

我花了几个小时研究这个。 索引服务sqlalchemy 404没有被部署。 在经历最新版本的registryconfiguration参考之后 ,似乎“search后端”部分不再有效。 所以也许我的docker-compose文件中的SEARCH_BACKEND envvariables被忽略,索引没有被完成(/ opt / sqlitedb文件夹是空的)。

另一方面,错误表明这是一个身份validation问题。

也许问题在于registry的v1和v2之间的区别。 我没有以前的registry经验,所以我觉得我在这里错过了一些东西。 我需要做什么才能使泊坞窗search在我的私人registry上工作?

谢谢!