教程 docker tutorial

构建自定义 Registry

Docker Registry 是用于存储和分发镜像的服务。搭建自定义 Registry 可以方便企业内部管理镜像,提高镜像安全性和访问速度。

1. 部署自定义 Registry

  • 使用官方 Registry 镜像:
bash
docker run -d -p 5000:5000 --name registry \
  -v /opt/registry/data:/var/lib/registry \
  registry:2

`

  • 参数说明:

    • -p 5000:5000:映射本地端口
    • -v /opt/registry/data:/var/lib/registry:持久化存储镜像数据
    • registry:2:官方 Registry 镜像

2. 推送和拉取镜像

  • 给本地镜像打标签:
bash
docker tag myapp localhost:5000/myapp:latest
  • 推送到私有 Registry:
bash
docker push localhost:5000/myapp:latest
  • 拉取镜像:
bash
docker pull localhost:5000/myapp:latest

3. 配置访问权限

  • 使用 Nginx 或 Traefik 反向代理,并开启 HTTPS
  • 配置基本认证:
bash
docker run -d -p 443:443 --name registry-auth \
  -v /auth:/auth \
  -v /certs:/certs \
  registry:2
  • 用户凭证通过 htpasswd 创建:
bash
htpasswd -Bbn username password > auth/htpasswd

4. 存储与备份策略

  • 持久化存储镜像数据到主机目录或云存储
  • 定期备份 /var/lib/registry 目录
  • 配合清理策略删除旧镜像,节省空间:
bash
registry garbage-collect /etc/docker/registry/config.yml

5. 高可用和扩展

  • 支持多节点部署
  • 使用负载均衡分发请求
  • 可结合 Kubernetes 部署 Registry 集群

6. 最佳实践

  • 使用 HTTPS 和认证保护 Registry
  • 对重要镜像启用签名验证
  • 定期扫描 Registry 中镜像的安全漏洞
  • 使用版本标签管理镜像,避免使用 latest 标签直接上线

通过构建自定义 Registry,企业可以实现内部镜像管理、安全控制和高效分发,提升 Docker 容器化应用的部署效率与安全性。