服务器与部署
自建仓库Docker 源与部署
这篇部署记录聚焦在自建私有 Docker Registry 的最小可用方案,将 registry:2 与 joxit/docker-registry-ui 通过 docker-compose 组合到同一个外部网络中运行,并把 Registry 数据持久化到本地目录。配置上的关键点是 Registry 只监听宿主机 127.0.0.1:5000,避免直接暴露服务,同时启用 REGISTRY_STORAGE_DELETE_ENABLED 以支持镜像删除;UI 则监听 127.0.0.1:18080,通过 NGINX_PROXY_PASS_URL=http://registry:5000 走容器内网代理,因此 Registry 侧不需要额外配置 CORS。外层 Nginx 分成两个 HTTPS 站点:一个面向 hub-ui.jacin.me 代理管理界面,一个面向 hub.jacin.me 代理仓库 API,并统一配置 Cloudflare 真实 IP、基础认证、转发头、长超时和 TLS 证书。仓库域名的 Nginx 配置额外设置 client_max_body_size 0,用于避免推送较大镜像层时被请求体大小限制拦截。验证部分使用一个基于 alpine:latest 的简单 Dockerfile 构建测试镜像,按 hub.jacin.me/test-project/hello-world:v1 的命名规则打标签,再通过 docker login 与 docker push 检查私有源是否可写。适合需要在个人服务器或小团队环境中快速搭建带 Web UI、HTTPS 入口、密码保护和删除能力的私有 Docker 镜像仓库的运维与后端开发者参考。







