如何部署私有 Docker 镜像仓库?

2025.5.29 杂七杂八 1490

如何部署私有 Docker 镜像仓库? 杂七杂八-第1张

本文详细讲解如何通过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方案。

评论