配置私有镜像仓库

启动私有镜像仓库容器

虽然用户可以在自己的集群上搭建私有仓库,但往往会面临存储空间小,迁移难,风险大的问题。私有仓库存储了所有的镜像,如果私有仓库发生事故,会造成巨大损失,严重影响业务,因此建议将私有仓库对接到分布式存储系统或云存储平台。DomeOS提供了使用搜狐云台存储镜像的方案,用稳定、安全的云存储保证镜像文件永久可用。以下仅说明使用对接搜狐云存储的私有仓库配置与启动方式,若需要创建本地存储或其他存储类型的私有仓库,可直接使用官方的registry镜像,启动过程请参考Docker Hub官方说明

注意:DomeOS目前仅支持v2版本registry,请确保部署registry版本正确。如果已经有私有仓库,可以跳过该步骤,进入下一步配置。

镜像

  1. pub.domeos.org/domeos/docker-registry-driver-sohustorage:1.1

启动命令

  1. sudo docker run --restart=always -d \
  2. -p <_registry_port>:5000 \
  3. -e REGISTRY_STORAGE_SCS_ACCESSKEY=<_scs_access_key> \
  4. -e REGISTRY_STORAGE_SCS_SECRETKEY=<_scs_secret_key> \
  5. -e REGISTRY_STORAGE_SCS_REGION=<_scs_region> \
  6. -e REGISTRY_STORAGE_SCS_BUCKET=<_scs_bucket> \
  7. -e REGISTRY_HTTP_SECRET=<_http_secret> \
  8. -e SEARCH_BACKEND=<_search_backend> \
  9. -e SEARCH_BACKEND_MYSQL="<_db_user>:<_db_passwd>@tcp(<_db_addr>)/<_db_database>?loc=Local&parseTime=true"
  10. --name private-registry \
  11. pub.domeos.org/domeos/docker-registry-driver-sohustorage:1.1

参数说明

  1. _registry_port:私有仓库对外服务端口
  2. _scs_access_key:搜狐云台 access key
  3. _scs_secret_key:搜狐云台 secret key
  4. _scs_region:搜狐云存储地域(bjcnc,bjctc,shctc,bjcnc-internal,bjctc-internal,shctc-internal)
  5. _scs_bucket:搜狐云存储桶名,要求该桶存在且可正常访问
  6. _http_secret:若需启动多个registry容器进行负载均衡,需要配置此环境变量,且赋予相同的值
  7. _search_backend:查询镜像列表的方式,可选MYSQLLOCAL,不配置时使用默认的查询方式
  8. _db_userDomeOS数据库用户
  9. _db_passwdDomeOS数据库密码
  10. _db_addrDomeOS数据库地址,IP:Port形式
  11. _db_databaseDomeOS数据库名称

说明

  • 该方式创建的私有仓库将对接到搜狐云台上。

  • 如果私有仓库需要使用https安全访问,则需加入如下额外参数:

  1. -v /path/to/certs:/certs
  2. -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt
  3. -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key

其中/path/to/certs为证书文件所在目录,registry.crt和registry.key分别为证书和秘钥文件。

样例

  1. sudo docker run -d --restart=always \
  2. -p 5000:5000 \
  3. -e REGISTRY_STORAGE_SCS_ACCESSKEY=ABCDEFOZ2k2yT4+qxzmA6A== \
  4. -e REGISTRY_STORAGE_SCS_SECRETKEY=ABCDEFF8vXvt0y2f+6dIXA== \
  5. -e REGISTRY_STORAGE_SCS_REGION=bjcnc \
  6. -e REGISTRY_STORAGE_SCS_BUCKET=registry \
  7. -e REGISTRY_HTTP_SECRET=domeos \
  8. -e SEARCH_BACKEND=MYSQL \
  9. -e SEARCH_BACKEND_MYSQL="domeos:domeos@tcp(10.10.10.10:3306)/registry?loc=Local&parseTime=true"
  10. --name private-registry \
  11. pub.domeos.org/domeos/docker-registry-driver-sohustorage:1.1

验证

通过curl -L http://<私有仓库的服务地址>/v2/查看私有仓库的运行状态,如果显示"{}"说明正常运行,如:

  1. curl -L http://10.10.10.10:5000/v2/
  2. {}

参考

https://github.com/docker/distribution