本文详细讲解如何通过Docker Registry和Harbor两种主流方案部署私有镜像仓库,涵盖安装配置、安全加固、镜像推送等全流程操作,并对比不同方案的适用场景,帮助团队实现高效安全的容器镜像管理。
一、为什么需要私有Docker镜像仓库?
在企业级开发场景中,私有镜像仓库能带来以下核心优势:
- 保障商业代码和敏感数据的安全性
- 避免公共仓库的网络延迟和下载限制
- 实现团队内部镜像版本统一管理
- 满足合规审计要求
二、Docker原生Registry部署方案
1. 快速启动基础仓库
拉取官方registry镜像
docker pull registry:2
启动容器(默认使用/var/lib/registry存储)
docker run -d -p 5000:5000 --name my-registry registry:2
2. 高级安全配置
生产环境必须添加认证和TLS加密:
生成自签名证书
openssl req -newkey rsa:4096 -nodes -sha256
-keyout domain.key -x509 -days 365 -out domain.crt
启动带认证的仓库
docker run -d -p 5000:5000 --name secure-registry
-v /certs:/certs
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key
-e REGISTRY_AUTH=htpasswd
-e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm"
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
registry:2
三、企业级方案:Harbor部署
1. 安装准备
下载离线安装包
wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz
解压并修改配置
tar xzvf harbor-offline-installer-v2.7.0.tgz
cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml 修改hostname、证书路径等配置
2. 启动服务
执行安装脚本
./install.sh
验证服务状态
docker-compose ps
四、镜像推送与拉取实战
1. 操作私有Registry
标记本地镜像
docker tag nginx:alpine localhost:5000/my-nginx
推送镜像
docker push localhost:5000/my-nginx
拉取镜像
docker pull localhost:5000/my-nginx
2. 操作Harbor仓库
登录认证
docker login harbor.yourdomain.com -u admin -p Harbor12345
推送带项目路径的镜像
docker tag nginx:alpine harbor.yourdomain.com/library/my-nginx
docker push harbor.yourdomain.com/library/my-nginx
五、方案对比与选型建议
特性 | Docker Registry | Harbor |
---|---|---|
安装复杂度 | 简单 | 中等 |
用户管理 | 基础认证 | RBAC权限系统 |
存储后端 | 本地文件系统 | 支持S3/OSS等云存储 |
适用场景 | 开发测试环境 | 生产环境 |
建议开发团队初期使用Docker Registry快速搭建,当需要企业级功能时迁移到Harbor方案。
评论