售前咨询400-838-0503

如何在Linux云服务器上配置镜像仓库?

发布:2025-05-13 00:55

Linux云服务器镜像仓库配置全指南

在现代云计算环境中,Docker镜像仓库的配置是每个DevOps工程师必备的技能。本文将详细介绍如何在Linux云服务器上搭建私有镜像仓库,包含从环境准备到安全配置的完整流程。

一、环境准备

1.1 服务器要求

  • 操作系统:Ubuntu 20.04 LTS或CentOS 8
  • 内存:至少2GB
  • 磁盘空间:建议50GB以上
  • Docker版本:19.03+

1.2 基础软件安装

# Ubuntu系统
sudo apt update
sudo apt install docker.io docker-compose

# CentOS系统
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker

二、部署私有镜像仓库

2.1 使用官方Registry镜像

最简单的部署方式是通过Docker官方提供的registry镜像:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

2.2 持久化存储配置

为数据持久化,建议挂载本地目录:

docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /data/registry:/var/lib/registry \
  registry:2

三、高级安全配置

3.1 HTTPS证书配置

生产环境必须配置HTTPS:

# 生成自签名证书
openssl req -newkey rsa:4096 -nodes -sha256 \
  -keyout domain.key -x509 -days 365 -out domain.crt

# 启动带证书的registry
docker run -d \
  -p 443:443 \
  --name registry \
  -v /data/certs:/certs \
  -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  registry:2

3.2 身份验证配置

使用htpasswd创建认证文件:

docker run --entrypoint htpasswd httpd:2 -Bbn username password > auth/htpasswd

docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /data/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
  registry:2

四、日常使用与维护

4.1 客户端配置

在使用自签名证书时,客户端需要信任证书:

# Linux系统
sudo cp domain.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

# Docker配置
sudo mkdir -p /etc/docker/certs.d/myregistrydomain.com:5000
sudo cp domain.crt /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt

4.2 常用操作

推送和拉取镜像:

# 标记镜像
docker tag myimage myregistrydomain.com:5000/myimage

# 推送镜像
docker push myregistrydomain.com:5000/myimage

# 拉取镜像
docker pull myregistrydomain.com:5000/myimage

五、总结

通过本文的详细步骤,您应该已经成功在Linux云服务器上配置了私有镜像仓库。私有仓库不仅能提高部署效率,还能增强安全性。建议定期备份仓库数据,并监控存储空间使用情况。

对于企业级应用,可以考虑使用Harbor等更专业的镜像仓库解决方案,它们提供了更多高级功能如漏洞扫描、复制策略等。

实用小贴士

  • 定期执行docker system prune清理无用镜像
  • 使用registry garbage-collect命令清理仓库中未被引用的层
  • 考虑配置日志轮转防止日志文件过大

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单