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

如何在Linux服务器上建立安全可靠的Docker镜像仓库?

Registry Docker bash Harbor 827    来源:    2025-04-14

在Linux服务器上建立安全可靠的Docker镜像仓库指南

1. 选择仓库解决方案

1.1 官方Docker Registry

# 拉取官方Registry镜像
docker pull registry:2

1.2 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

2. 基本安全配置

2.1 使用TLS加密

# 生成自签名证书(生产环境建议使用CA签名证书)
openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt

2.2 基本认证

# 创建认证文件
docker run --entrypoint htpasswd httpd:2 -Bbn username password > /auth/htpasswd

3. 部署Docker Registry

3.1 运行Registry容器

docker run -d -p 5000:5000 --restart=always --name registry \
  -v /path/to/certs:/certs \
  -v /path/to/auth:/auth \
  -v /path/to/data:/var/lib/registry \
  -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

4. 高级安全配置

4.1 网络隔离

# 创建专用网络
docker network create registry-net

4.2 资源限制

docker update --memory 2G --memory-swap 4G registry

4.3 日志审计

docker run -d ... \
  -e REGISTRY_LOG_LEVEL=info \
  -v /path/to/logs:/var/log/registry \
  registry:2

5. 使用Harbor企业级仓库(推荐)

5.1 配置harbor.yml

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

5.2 安装Harbor

./install.sh

6. 维护与监控

6.1 定期备份

# 备份Registry数据卷
docker stop registry
tar czvf registry-backup-$(date +%Y%m%d).tar.gz /path/to/data
docker start registry

6.2 垃圾回收

docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml

7. 客户端配置

7.1 信任自签名证书

# 将CA证书复制到Docker证书目录
sudo mkdir -p /etc/docker/certs.d/reg.yourdomain.com
sudo cp domain.crt /etc/docker/certs.d/reg.yourdomain.com/ca.crt

7.2 登录仓库

docker login reg.yourdomain.com

最佳实践建议

  1. 启用镜像扫描功能(如Harbor的Clair集成)
  2. 实施基于角色的访问控制(RBAC)
  3. 设置镜像复制策略实现异地容灾
  4. 定期更新Registry软件版本
  5. 监控仓库性能和存储使用情况
  6. 实施镜像签名验证(Notary)

通过以上步骤,您可以建立一个安全、可靠的Docker镜像仓库,满足企业级应用的需求。