文档首页> 常见问题> Linux下如何配置容器镜像仓库?

Linux下如何配置容器镜像仓库?

发布时间:2025-08-06 01:01       

Linux下3种主流容器镜像仓库配置指南

随着容器技术的普及,搭建私有镜像仓库已成为企业DevOps实践的标配。本文将详细介绍在Linux环境下配置Docker Registry、Harbor和Nexus三种主流容器镜像仓库的完整流程,并提供性能优化建议和安全配置方案。

一、准备工作

在开始配置前,请确保您的Linux系统满足以下要求:

  • 操作系统:Ubuntu 20.04+/CentOS 7+
  • Docker版本:20.10.0+
  • 硬盘空间:至少50GB可用空间
  • 内存:4GB以上(生产环境建议8GB+)
注意: 以下操作均需要root权限,建议使用sudo或直接切换到root用户执行。

二、Docker官方Registry配置

1. 快速部署方案

# 拉取registry镜像
docker pull registry:2

# 启动registry容器
docker run -d -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /data/registry:/var/lib/registry \
  registry:2

2. 高级安全配置

生产环境必须配置TLS和基础认证:

  1. 生成自签名证书:
  2. openssl req -x509 -newkey rsa:4096 -nodes -sha256 \
      -keyout /certs/domain.key -out /certs/domain.crt \
      -days 365 -subj "/CN=yourdomain.com"
  3. 创建认证文件:
  4. docker run --entrypoint htpasswd registry:2 \
      -Bbn username password > /auth/htpasswd
  5. 启动带安全配置的registry:
  6. docker run -d -p 5000:5000 \
      --restart=always \
      --name secured_registry \
      -v /data/registry:/var/lib/registry \
      -v /certs:/certs \
      -v /auth:/auth \
      -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
      -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
      -e REGISTRY_AUTH=htpasswd \
      -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
      -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
      registry:2

三、企业级方案:Harbor部署

1. 安装前准备

Harbor需要额外安装docker-compose:

# 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \
  -o /usr/local/bin/docker-compose

# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose

2. 离线安装Harbor

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

# 解压并配置
tar xvf harbor-offline-installer-*.tgz
cd harbor
cp harbor.yml.tmpl harbor.yml

3. 关键配置项

编辑harbor.yml需要特别注意:

  • hostname: 设置访问域名
  • https证书: 配置TLS证书路径
  • 数据持久化: 默认使用本地目录/data
  • admin密码: 修改默认Harbor12345密码

4. 启动与访问

# 执行安装脚本
./install.sh

# 访问Web界面
https://yourdomain.com

四、通用仓库方案:Nexus Repository

1. 安装Nexus3

# 创建专用用户
useradd -M -d /opt/nexus -s /bin/bash -r nexus

# 下载安装包
wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz

# 解压并配置
tar xvf latest-unix.tar.gz -C /opt
chown -R nexus:nexus /opt/nexus*

2. 配置Docker仓库

通过Web界面(默认端口8081)创建仓库:

  1. 创建Blob Store存储空间
  2. 新建"Docker(hosted)"类型仓库
  3. 配置HTTP/HTTPS访问端口
  4. 设置访问权限

3. 性能优化建议

  • 调整JVM参数:编辑bin/nexus.vmoptions
  • 配置反向代理:建议使用Nginx
  • 定期清理策略:设置自动清理任务

五、仓库使用最佳实践

1. 客户端配置

对于非安全仓库,需要修改docker配置:

# 编辑/etc/docker/daemon.json
{
  "insecure-registries" : ["myregistry:5000"]
}

# 重启docker服务
systemctl restart docker

2. 镜像操作命令

# 标记镜像
docker tag local-image:tag myregistry:5000/repo:tag

# 推送镜像
docker push myregistry:5000/repo:tag

# 拉取镜像
docker pull myregistry:5000/repo:tag

3. 维护技巧

  • 定期执行垃圾回收:docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml
  • 监控仓库存储使用情况
  • 设置镜像保留策略

本文详细介绍了三种主流容器镜像仓库的配置方法,从简单的Docker Registry到功能完善的Harbor,再到通用的Nexus解决方案。实际部署时,建议根据团队规模和安全要求选择合适的方案。对于小型团队,Docker Registry简单易用;而中大型企业更推荐使用Harbor,它提供了完善的RBAC、漏洞扫描等企业级功能。