插件窝 干货文章 如何在Linux服务器上建立高效的Docker镜像仓库?

如何在Linux服务器上建立高效的Docker镜像仓库?

Registry Docker 配置 Harbor 320    来源:    2025-04-14

在Linux服务器上建立高效的Docker镜像仓库指南

方案选择

1. Docker Registry (官方方案)

  • 特点:轻量级、开源、符合OCI标准
  • 适用场景:中小规模团队,基础镜像管理需求

2. Harbor (企业级方案)

  • 特点:功能丰富(漏洞扫描、RBAC、复制策略等)
  • 适用场景:中大型企业,需要安全合规和高级功能

部署Docker Registry方案

基础安装

# 拉取最新Registry镜像
docker pull registry:latest

# 创建数据存储目录
mkdir -p /var/lib/registry

# 运行Registry容器
docker run -d \
  -p 5000:5000 \
  --name registry \
  -v /var/lib/registry:/var/lib/registry \
  --restart=always \
  registry:latest

安全配置

# 生成认证文件
mkdir -p /auth
docker run --entrypoint htpasswd httpd:2 -Bbn username password > /auth/htpasswd

# 使用TLS运行(需要提前准备证书)
docker run -d \
  -p 5000:5000 \
  --name registry \
  -v /var/lib/registry:/var/lib/registry \
  -v /auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -v /path/to/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  --restart=always \
  registry:latest

部署Harbor方案

安装准备

# 下载Harbor离线安装包
wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz

# 解压
tar xvf harbor-offline-installer-v2.5.0.tgz
cd harbor

配置harbor.yml

hostname: registry.yourdomain.com
http:
  port: 80
https:
  port: 443
  certificate: /your/certificate/path
  private_key: /your/private/key/path
harbor_admin_password: Harbor12345
database:
  password: root123
data_volume: /data

安装执行

./install.sh

性能优化建议

  1. 存储后端优化

    • 对于高负载环境,考虑使用S3或Azure Blob存储作为后端
    • 本地存储建议使用高性能SSD
  2. 缓存配置

    # 在Registry配置中添加缓存
    redis:
     addr: redis:6379
     pool:
       maxidle: 16
       maxactive: 64
       idletimeout: 300s
    
  3. Garbage Collection

    # 定期清理未引用层
    docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml
    
  4. 负载均衡

    • 对于大规模部署,在前端配置Nginx负载均衡多个Registry实例

日常维护

  1. 备份策略

    # 备份Registry数据
    tar czvf registry-backup-$(date +%Y%m%d).tar.gz /var/lib/registry
    
  2. 监控指标

    • 存储空间使用情况
    • 请求延迟和错误率
    • 镜像推送/拉取频率
  3. 日志管理

    # 配置日志轮转
    version: 0.1
    log:
     fields:
       service: registry
     access:
       disabled: false
     level: info
     formatter: text
     hooks:
       - type: local
         disabled: false
         levels:
           - error
         options:
           maxsize: 100m
           maxage: 7d
           maxbackups: 10
           localtime: false
           compress: true
    

客户端配置

# 配置非安全Registry(仅测试环境)
echo '{ "insecure-registries":["your-registry-ip:5000"] }' > /etc/docker/daemon.json
systemctl restart docker

# 登录认证
docker login your-registry-ip:5000

通过以上配置,您可以在Linux服务器上建立一个高效、安全的Docker镜像仓库,满足不同规模团队的需求。