登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
Docker Registry 使用总结
Docker Registry 使用总结
[ 复制链接 ]
获弃
昨天 11:42
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
使用
总结
相关帖子
Unigine使用QtWidgets制作编辑器扩展(Editor Plugin)的简单随笔
25国庆总结
如何使用io_uring构建快速响应的I/O密集型应用?
使用OpenCvSharp , Emgu.CV 手搓 视觉识别算法 以及 成果展示
高性能场景为什么推荐使用PostgreSQL,而非MySQL?
【记录贴】使用项目管理软件管理大型复杂项目是种什么体验?
docker部署showdoc以及linux网关配置
使用ITSM工具的10大优点
学习ReAct并使用langgraph实现一个简单的ReAct AI Agent!!
使用命令行删除 Windows 网络映射驱动器
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
Unigine使用QtWidgets制作编辑器扩展(Editor Plugin)的简单随笔
0
103
葛雅隽
2025-10-09
业界
25国庆总结
0
290
骆熙华
2025-10-09
安全
如何使用io_uring构建快速响应的I/O密集型应用?
0
286
井晶灵
2025-10-09
业界
使用OpenCvSharp , Emgu.CV 手搓 视觉识别算法 以及 成果展示
0
454
忆雏闲
2025-10-10
业界
高性能场景为什么推荐使用PostgreSQL,而非MySQL?
0
572
判涔
2025-10-10
安全
【记录贴】使用项目管理软件管理大型复杂项目是种什么体验?
0
964
奄幂牛
2025-10-10
安全
docker部署showdoc以及linux网关配置
0
149
咫噎
2025-10-10
安全
使用ITSM工具的10大优点
1
889
刎唇
2025-10-10
业界
学习ReAct并使用langgraph实现一个简单的ReAct AI Agent!!
0
31
稼布欤
2025-10-10
业界
使用命令行删除 Windows 网络映射驱动器
0
462
欧阳雪枫
2025-10-11
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
获弃
昨天 11:42
关注
0
粉丝关注
11
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994888
dage888
999994
富账慕
10007
4
匝抽
9986
5
孙淼淼
9992
6
柴古香
9993
7
筒濂
9982
8
凌彦慧
9988
9
崔瑜然
9984
10
慢秤
9979
查看更多