如何管理Docker私有注册表

如何管理Docker私有注册表,docker,docker-registry,Docker,Docker Registry,我已经在example.com:5000上设置了Docker并运行了一个私有存储库。我遵循了下面列出的说明: 并使用docker-compose.yml: registry: restart: always image: registry:2 ports: - 5000:5000 environment: REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt REGISTRY_HTTP_TLS_KEY: /cer

我已经在
example.com:5000
上设置了Docker并运行了一个私有存储库。我遵循了下面列出的说明:

并使用docker-compose.yml:

registry:
  restart: always
  image: registry:2
  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
  volumes:
    - /path/data:/var/lib/registry
    - /path/certs:/certs
    - /path/auth:/auth
我可以推送拉取图像到存储库,但我无法运行
docker search example.com:5000/library
。我从守护进程得到一个:
错误响应:意外状态代码404

当我将curl指向端点时,会得到以下结果:

$ curl -v -X GET http://example.com:5000/v2/images
Note: Unnecessary use of -X or --request, GET is already inferred.
*   Trying 37.139.20.160...
* Connected to example.com (192.167.201.2) port 5000 (#0)
> GET /v2/images HTTP/1.1
> Host: domain.com:5000
> User-Agent: curl/7.47.0
> Accept: */*
> 

* Connection #0 to host example.com left intact

如何使search命令工作,以便管理存储库?在哪里可以找到端点的API文档?或者有更好的方法来管理Docker私人回购吗?

根据

Docker注册表可以选择在数据库中为
GET/v1/search
端点索引存储库信息

(我在中没有看到搜索。您可以)

search\u backend
设置选择要使用的搜索后端。
如果
search\u backend
为空,则不生成索引,搜索端点始终返回空结果

例如,使用

初始化时,SQLAlchemyIndex类检查数据库版本。如果数据库还不存在(或者确实存在,但缺少版本表),SQLAlchemyIndex将创建数据库和所需的表


看起来你必须激活搜索选项,根据

Docker注册表可以选择在数据库中为
GET/v1/search
端点索引存储库信息

(我在中没有看到搜索。您可以)

search\u backend
设置选择要使用的搜索后端。
如果
search\u backend
为空,则不生成索引,搜索端点始终返回空结果

例如,使用

初始化时,SQLAlchemyIndex类检查数据库版本。如果数据库还不存在(或者确实存在,但缺少版本表),SQLAlchemyIndex将创建数据库和所需的表

common:
  search_backend: sqlalchemy
  sqlalchemy_index_database: sqlite:////tmp/docker-registry.db