Docker Registry 使用和部署方式

 更新时间:2025年10月10日 08:39:57   作者:香吧香  
Docker Registry是一个无状态、可扩展的服务器端应用程序,本文给大家介绍Docker Registry使用和部署方式,感兴趣的朋友一起看看吧

1. Docker Registry 基础概念

什么是 Docker Registry

  • Docker Registry 是一个无状态、可扩展的服务器端应用程序
  • 用于存储和分发 Docker 镜像
  • 官方提供开源版本 registry:2,是 Docker 官方推荐的私有仓库解决方案

核心作用

  • 镜像存储: 集中存储 Docker 镜像
  • 镜像分发: 在不同环境和节点间共享镜像
  • 版本管理: 管理镜像的不同版本和标签
  • 访问控制: 提供认证和授权机制

2. Docker Registry 部署方式

简单部署

root@controller1:~# docker pull registry:2.7.0
2.7.0: Pulling from library/registry
e3c488b39803: Pull complete
05a63128803b: Pull complete
1b07057daa1a: Pull complete
3ed3807221bb: Pull complete
2238f667b955: Pull complete
a08a29f99d0a: Pull complete
Digest: sha256:1cd9409a311350c3072fe510b52046f104416376c126a479cef9a4dfe692cf57
Status: Downloaded newer image for registry:2.7.0
docker.io/library/registry:2.7.0
root@controller1:~#
# 运行基本的 Registry 实例
docker run -d -p 5000:5000 --name registry registry:2

生产环境部署配置

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_PATH=/auth/htpasswd \
  -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
  registry:2

3. 核心配置参数详解

存储配置

  • REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: 文件系统存储根目录
  • REGISTRY_STORAGE_DELETE_ENABLED: 是否允许删除镜像(默认 false)
  • REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR: 缓存配置

安全配置

  • REGISTRY_HTTP_TLS_CERTIFICATE: TLS 证书路径
  • REGISTRY_HTTP_TLS_KEY: TLS 私钥路径
  • REGISTRY_AUTH: 认证方式(htpasswd、token 等)
  • REGISTRY_AUTH_HTPASSWD_PATH: htpasswd 文件路径

网络配置

  • REGISTRY_HTTP_ADDR: HTTP 监听地址
  • REGISTRY_HTTP_HOST: 外部访问地址
  • REGISTRY_HTTP_SECRET: HTTP 密钥

4. 认证与授权机制

HTPASSWD 认证

# 创建密码文件
mkdir auth
docker run --rm --entrypoint htpasswd registry:2 -Bbn username password > auth/htpasswd
# 启动带认证的 Registry
docker run -d -p 5000:5000 --name registry \
  -v $(pwd)/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  registry:2

客户端登录

# 登录私有仓库
docker login localhost:5000
# 推送镜像
docker tag ubuntu:latest localhost:5000/ubuntu:latest
docker push localhost:5000/ubuntu:latest
# 拉取镜像
docker pull localhost:5000/ubuntu:latest

5. 镜像管理操作

镜像推送流程

  • 标记镜像:

    docker tag SOURCE_IMAGE:TAG REGISTRY_HOST:PORT/IMAGE_NAME:TAG
  • 推送镜像:

    docker push REGISTRY_HOST:PORT/IMAGE_NAME:TAG

镜像拉取流程

docker pull REGISTRY_HOST:PORT/IMAGE_NAME:TAG

查看仓库信息

# 查看仓库列表
curl http://REGISTRY_HOST:PORT/v2/_catalog
# 查看镜像标签
curl http://REGISTRY_HOST:PORT/v2/IMAGE_NAME/tags/list

删除镜像

# 启用删除功能
-e REGISTRY_STORAGE_DELETE_ENABLED=true
# 删除镜像 manifest
curl -X DELETE http://REGISTRY_HOST:PORT/v2/IMAGE_NAME/manifests/DIGEST

使用示例

root@controller1:~/zeng/docker_pull# docker push registry.tethrnet.com:5000/mongo:latest
The push refers to repository [registry.tethrnet.com:5000/mongo]
a4aac564b866: Pushed
afc67efe5570: Pushed
fa742b9a5a74: Pushed
c22d31789a0b: Pushed
27b6909edf8c: Pushed
125fad5c3f6f: Pushed
b23a008a4788: Pushed
8eb266e6a340: Pushed
f23c7009bffa: Pushed
7fbab1a08895: Pushed
551f518b33f2: Pushed
e996f7b5c172: Pushed
latest: digest: sha256:cf4e7392f797d8c788c4725d240c685b595087ef6c1043e4ea4b311e232b8430 size: 2823
root@controller1:~/zeng/docker_pull#
root@controller1:~/zeng/docker_pull#
root@controller1:~/zeng/docker_pull#
root@controller1:~/zeng/docker_pull#
root@controller1:~/zeng/docker_pull#
root@controller1:~/zeng/docker_pull# curl -X GET -u tethrnet:Tethrnet@@123 https://registry.tethrnet.com:5000/v2/mongo/tags/list
{"name":"mongo","tags":["latest","4.2.10-bionic"]}
root@controller1:~/zeng/docker_pull#

6. 存储后端配置

本地文件系统

-e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/var/lib/registry

AWS S3

-e REGISTRY_STORAGE=s3
-e REGISTRY_STORAGE_S3_ACCESSKEY=your_access_key
-e REGISTRY_STORAGE_S3_SECRETKEY=your_secret_key
-e REGISTRY_STORAGE_S3_REGION=us-east-1
-e REGISTRY_STORAGE_S3_BUCKET=bucket_name

其他存储

  • Azure Blob Storage
  • Google Cloud Storage
  • OpenStack Swift
  • Alibaba Cloud OSS

7. 高可用部署

多实例部署

  • 使用共享存储(如 NFS、S3)
  • 前端负载均衡器分发请求
  • 每个实例独立运行

数据持久化

# 挂载持久化存储卷
-v /host/data/path:/var/lib/registry

备份与恢复

# 备份数据目录
tar czf registry_backup.tar.gz /var/lib/registry
# 恢复数据
tar xzf registry_backup.tar.gz -C /

8. 监控与日志

日志配置

-e REGISTRY_LOG_LEVEL=info
-e REGISTRY_LOG_FORMATTER_NAME=json

健康检查

# 健康检查端点
curl http://REGISTRY_HOST:PORT/v2/

性能监控

  • 监控存储使用情况
  • 网络流量监控
  • 请求响应时间监控

9. 常见问题与解决方案

证书问题

  • 确保客户端信任 Registry 证书
  • 使用 --insecure-registry 参数(不推荐用于生产)

存储空间不足

  • 定期清理未使用的镜像
  • 配置镜像自动清理策略
  • 扩展存储容量

性能优化

  • 启用缓存机制
  • 使用 CDN 加速镜像分发
  • 优化网络配置

参考连接:https://www.cnblogs.com/Chary/p/18095027

到此这篇关于Docker Registry 使用和部署方式的文章就介绍到这了,更多相关Docker Registry 使用总结内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • skywalking在docker中应用方式

    skywalking在docker中应用方式

    这篇文章主要介绍了skywalking在docker中应用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Docker发布镜像到DockerHub与阿里云容器

    Docker发布镜像到DockerHub与阿里云容器

    本文主要介绍了Docker发布镜像到DockerHub与阿里云容器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Docker容器搭建Kafka集群的详细过程

    Docker容器搭建Kafka集群的详细过程

    这篇文章主要介绍了Docker容器 Kafka集群的搭建,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 如何给Docker配置官方国内加速镜像

    如何给Docker配置官方国内加速镜像

    在国内访问 Docker 官方的镜像,一直以来速度都慢如蜗牛。为了快速访问 Docker 官方镜像都会配置三方加速器
    2017-06-06
  • Docker-harbor私有仓库部署与管理方式

    Docker-harbor私有仓库部署与管理方式

    这篇文章主要介绍了Docker-harbor私有仓库部署与管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • docker安装mongoDB及使用方法详解

    docker安装mongoDB及使用方法详解

    这篇文章主要给大家介绍了关于docker安装mongoDB及使用的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • 如何用Docker快速部署Spug自动化运维平台

    如何用Docker快速部署Spug自动化运维平台

    Spug是面向中小企业的轻量级无Agent自动化运维平台,集成主机管理、批量执行、文件传输、任务计划、配置监控及多渠道报警功能,基于AntDesign设计,开源免费,支持Docker部署与初始化管理员账户
    2025-07-07
  • docker容器源码部署httpd用存储卷部署网站(推荐)

    docker容器源码部署httpd用存储卷部署网站(推荐)

    这篇文章主要介绍了docker容器源码部署httpd用存储卷部署网站,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • docker中安装elasticsarch 等镜像的过程

    docker中安装elasticsarch 等镜像的过程

    这篇文章主要介绍了docker中安装elasticsarch 等镜像,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Docker容器化工具及常用操作的详细解析

    Docker容器化工具及常用操作的详细解析

    Docker是容器化技术的核心工具,掌握其常用命令能高效管理容器、镜像、网络和数据卷,这篇文章主要介绍了Docker容器化工具及常用操作的详细解析,需要的朋友可以参考下
    2025-08-08

最新评论