Registry 是 Docker 官方提供的开源镜像仓库,用于存储和分发 Docker 镜像
参考资料
Registry 详细简介
Registry 是 Docker 官方提供的开源镜像仓库,用于存储和分发 Docker 镜像。它支持私有化部署,允许用户在本地或内网环境中管理镜像。
特点
私有化部署:支持内网环境搭建私有镜像仓库。
安全性:支持 TLS 加密和基于角色的访问控制(RBAC)。
可扩展性:支持分布式存储后端(如 S3、Azure Blob Storage 等)。
轻量高效:基于 Go 语言开发,资源占用低。
API 兼容:完全兼容 Docker Registry API V2。
最新更新内容及时间
最新版本:v2.8.2
更新时间:2023年10月
更新内容:
修复了 CVE-2023-3086 安全漏洞。
改进了垃圾回收机制的性能。
支持 OCI 1.1 规范的镜像格式。
镜像下载地址
官方 Docker Hub 镜像地址:
docker pull registry:latest
官网地址
Docker Registry 官方 GitHub 仓库:
https://github.com/distribution/distribution
文档地址
官方文档:
https://docs.docker.com/registry/
Docker 安装示例
拉取最新 Registry 镜像:
docker pull registry:latest
运行 Registry 容器:
docker run -d -p 5000:5000 --name my-registry registry
测试推送镜像:
docker tag alpine localhost:5000/my-alpine docker push localhost:5000/my-alpine
YAML 配置文件示例
默认配置文件路径:/etc/docker/registry/config.yml
示例配置(支持 HTTP 基本认证和存储):
version: 0.1 log: level: info storage: filesystem: rootdirectory: /var/lib/registry http: addr: :5000 headers: X-Content-Type-Options: [nosniff] auth: htpasswd: realm: basic-realm path: /auth/htpasswd
常用错误及解决方法
错误:
http: server gave HTTP response to HTTPS client
原因:Docker 客户端默认要求 HTTPS,但 Registry 未配置 TLS。
解决:在客户端 Docker 配置中(/etc/docker/daemon.json
)添加:{ "insecure-registries":["your-registry-ip:5000"] }
并重启 Docker:
systemctl restart docker
。错误:
blob unknown to registry
原因:镜像层在推送过程中丢失或垃圾回收后未正确清理。
解决:重新推送镜像或检查存储后端是否正常。错误:
no basic auth credentials
原因:未配置认证或认证信息错误。
解决:使用docker login your-registry-ip:5000
登录。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。