安装 Docker Registry 和 Registry UI

Registry 是 Docker 镜像的 local 存储管理服务, Registry UI 是对 Registry 进行图形化展示的页面工具.

Registry 除了使用界面访问之外, 还支持 CrudAPI 访问: Registry API

安装 Registry 和 Registry UI

0. 规划服务器

服务器: xxx.xxx.85.102

域名: docker-hub.xxx.com

证书文件: docker-hub.xxx.com.pemdocker-hub.xxx.com.key

端口: Registry 默认端口 5000, Registry UI 使用 18080 映射到默认的 80 上.

1. 生成用户名密码

htpasswd -Bbn username password >> ./auth/htpasswd

2. 申请证书

申请免费的 TLS 证书, 将证书 docker-hub.xxx.com.pemdocker-hub.xxx.com.key 放到 ./certs 文件夹下.

将证书对应域名 docker-hub.xxx.com 解析到服务器 xxx.xxx.85.102.

3. 修改 Registry 配置文件

./conf/config.yml 文件. Access-Control-Allow-Origin 数组内只支持填写一个内容, 写 http://docker-hub.xxx.com:18080. 其中协议为 http, 域名为 docker-hub.xxx.com, 端口是 Registry UI 端口 18080.

4. 修改 Compose 配置文件

REGISTRY_HTTP_TLS_CERTIFICATE 为 pem 证书文件, REGISTRY_HTTP_TLS_KEY 为 key 证书文件.

关于跨域问题的解决

docker-compose.yml 中的 REGISTRY_URL: https://docker-hub:5000networks 在同一个网络下时, 会自动更改请求头信息

./conf/config.yml 中的 Access-Control-Allow-Origin: ["http://docker-hub.xxx.com:18080"] 只支持填写一个地址, 不能写 “*“ 和多个地址.

可以仔细阅读 Run the static interfaceUsing CORS 两部分, 再结合我前面总结的两点.

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.