# docker-registry **Repository Path**: jsonlee_lee/docker-registry ## Basic Information - **Project Name**: docker-registry - **Description**: A lightweight Docker Compose setup that pairs the official `registry:3` server with the `joxit/docker-registry-ui` frontend, includes persistent storage, timezone and UI presets via `.env` files, and Make targets for bringing the private registry and UI up, down, or refreshed in one command. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-20 - **Last Updated**: 2025-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Docker Registry Stack 一个轻量的 Docker Compose 方案,使用官方 `registry:3` 搭配 `joxit/docker-registry-ui` 前端,并通过 Makefile 在一条命令内完成启动与关闭。 ## 快速开始 1. **(可选)修改环境变量** - `env/.env`:目前只包含 `TZ=Asia/Shanghai`,也可加入更多共享变量。 - `env/ui.env`:控制 UI 的标题、删除开关、页面大小、上游地址等。 2. **使用 Make 启动**:`make up`(该命令会自动创建网络并启动两个 Compose 项目,无需手动执行其他 docker 命令)。 3. **访问服务** - Registry API: `http://localhost:15000/v2/_catalog` - UI 控制台: `http://localhost:15001` 4. **推送镜像** ```bash docker pull alpine:3.19 docker tag alpine:3.19 localhost:15000/demo/alpine:3.19 docker push localhost:15000/demo/alpine:3.19 ``` 刷新 UI 即可看到新仓库。 > 默认未启用认证(`REGISTRY_SECURED=false`)。若计划暴露到不可信网络,请配置认证(Basic Auth、TLS、反向代理等)并同步修改 UI 变量。 ## 功能亮点 - 私有镜像仓库挂载到主机 `/var/lib/docker-registry`,端口映射为 `localhost:15000`。 - UI 使用 Joxit Docker Registry UI,默认开放删镜像、展示 digest、控制目录深度等功能,从 `env/ui.env` 读取配置,监听 `localhost:15001`。 - 两个 Compose 项目共用 `docker-registry-network`,UI 直接与仓库通信,无需额外代理。 - 时区、UI 行为等参数都存放在 `.env` 文件,无需修改 Compose。 - Makefile 提供 `up / down / clean / restart / help`,简化日常操作。 ## 依赖 - Docker Engine 与 Compose 插件(建议 v2+)。 - 主机具备创建 `/var/lib/docker-registry` 文件夹的权限。 ## Make 命令 | 目标 | 说明 | | --- | --- | | `make up` | 使用 `server.yaml` 与 `ui.yaml` 启动容器(后台模式)。 | | `make down` | 停止两个 Compose 项目。 | | `make clean` | 停止所有服务并清理未使用的容器、镜像、卷与网络(不可逆)。 | | `make restart` | 先 down 再 up 的便捷组合。 | | `make help` | 打印帮助信息。 | ## 配置文件 | 文件 | 用途 | | --- | --- | | `env/.env` | 供两个 Compose 文件共享的变量(示例:时区)。 | | `env/ui.env` | UI 独有配置。如 `REGISTRY_TITLE` 控制标题,`DELETE_IMAGES` 打开删除按钮,`CATALOG_MAX_BRANCHES` 限制目录深度,`NGINX_PROXY_PASS_URL` 需指向 registry 服务(`http://docker-registry:5000`)。 | 如果你添加了 TLS 或认证层,请更新 `NGINX_PROXY_PASS_URL` 以反映新的上游地址,并把 `REGISTRY_SECURED` 设为 `true`,让 UI 显示登录入口。 ## 运维与排障 - **数据持久化**:所有镜像 blob 都存放在主机 `/var/lib/docker-registry`。迁移或备份时请关注该目录。 - **资源清理**:`make clean` 会全局清理 Docker 资源,务必确认后执行。 - **查看日志**:`docker logs docker-registry` 与 `docker logs docker-registry-ui`。 - **升级镜像**:`make down` → `docker pull registry:3 && docker pull joxit/docker-registry-ui:main` → `make up`。 此仓库刻意保持最小化,方便根据自身需求扩展 TLS、认证、外部存储、监控等组件。