Registry搭建私有镜像仓库
一、为什么需要私有镜像仓库
- 方便存储和管理自己构建的镜像(公司内部镜像、测试镜像等)。
- 提高镜像分发速度(尤其是内网环境)。
- 增强安全性(避免公开托管敏感镜像)。
二、环境准备
- 一台win笔记本电脑 / 一台服务器(Linux,建议 CentOS / Ubuntu,内存≥2GB)。
- 已安装 Docker 和 Docker Compose。
三、搭建步骤
本次示例搭建依托于win 10 环境
1. 新建目录
1 | // 镜像仓库数据持久化目录 |
2. 编写 registry 的配置文件
config.yml 示例如下
1 | version: 0.1 |
3. 编写 docker-compose.yml
1 | version: "3.8" |
4. 启动服务
1 | docker-compose up -d |
- Registry 服务地址:
http://localhost:5000
- UI 管理页面:
http://localhost:9080
四、客户端配置
1. 修改 Docker 配置(允许 HTTP 仓库)
编辑 daemon.json:
Docker for win 页面打开Setting–>Docker Engine
Linux上需要修改/etc/docker/daemon.json(文件不存在就自己创建一个)
1 | // 不是本地部署的 需要换成对应 ServerIP |
重启 Docker:
Docker for win 点击 Apply & restart
Linux中执行如下命令即可
1 | systemctl restart docker |
2. 测试推送镜像
1 | docker tag hello-world:latest localhost:5000/hello-world:local |
3. 查看UI 管理页面
观察到 hello-world 镜像已经成功推送到私库
4. 测试拉取镜像
1 | docker pull localhost:5000/hello-world:local |
五、与其他私库对比
特性 | Docker Registry + UI | Harbor | Nexus3 (支持Docker) | GitLab Container Registry |
---|---|---|---|---|
部署难度 | 简单(几分钟) | 中等(需配置数据库、Redis) | 中等 | 中等(依赖 GitLab) |
功能 | 基础推送/拉取,UI 管理 | 企业级功能齐全(用户、RBAC、审计、复制、多租户) | 通用制品库(Docker、Maven、npm 等) | 与 GitLab CI/CD 深度集成 |
UI体验 | 简单直观 | 功能丰富,支持权限、项目分组 | 功能较多但略复杂 | 集成在 GitLab 界面中 |
安全性 | 默认弱(需额外配置 HTTPS、认证) | 内置安全扫描、用户权限控制 | 支持用户认证 | 依赖 GitLab 权限 |
适用场景 | 个人/小团队快速搭建 | 企业级团队/生产环境 | 需要统一制品管理 | 使用 GitLab 的团队 |
运维复杂度 | 低 | 较高 | 中等 | 中等 |
六、总结
- Docker Registry + UI:轻量、快速、适合个人/小团队测试和开发。
- Harbor:最推荐的企业级方案,功能强大,但部署复杂。
- Nexus3:适合需要多种制品统一管理的场景。
- GitLab Registry:如果本身用 GitLab 做代码管理,推荐直接使用。
写在最后
如果只是想要一个 简单好用的个人私库,Docker Registry + UI 足够。
如果是企业生产环境,首选还是Harbor 。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Ann!