registry简介
Docker registry是docker镜像仓库的服务,用于存储和分发docker镜像。
Docker registry主要特点和功能:
存储docker镜像:提供持久化存储docker镜像的功能,存储镜像的各个layer。
分发镜像:拉取和推送镜像的去中心化存储和分发服务。
支持版本管理:给镜像打标签,实现不同版本镜像的管理。
支持访问权限:通过用户登录认证限制镜像的访问和推送。
提供HTTP/HTTPS API:实现镜像相关操作的API,如查找、推送、删除镜像等。
多样化存储后端:支持文件系统、Amazon S3对象存储等不同后端存储镜像。
下载加速分发:通过CDN技术实现全球范围内的下载加速。
最常见的registry有Docker Hub和私有registry,Docker Hub为开源注册中心,私有registry主要用于内部镜像管理。
docker命令直接或通过HTTP API调用registry完成镜像的生命周期管理。是实现docker镜像持久化和分布式的重要组件。
运行registry
1. 拉取registry镜像
docker pull registry:2
2. 运行registry容器
docker run -d -p 5000:5000 --restart=always --name my-registry registry:2
3. 查看状态
docker ps
4. 向registry推送镜像
docker tag registry:2 localhost:5000/my-registry:1.0
docker push localhost:5000/my-registry:1.0
访问registry
查看镜像列表
执行命令curl http://localhost:5000/v2/_catalog
或
访问http://localhost:5000/v2/_catalog
查看指定镜像的所有标签
http://localhost:5000/v2/my-registry/tags/list
其他接口
docker运行的registry容器主要提供以下HTTP/HTTPS接口:
/v2/: 镜像管理接口
包括查看、搜索、拍照、推送、删除镜像等操作。
/v2/_catalog: 查看镜像库中所有 repositories
/v2//tags/list: 查看指定repository下的所有标签
/v2//manifests/: 获取manifest信息
/v2//blobs/: 获取某个layer的信息
/v2//blobs/uploads/: 上传新的layer
/v2//blobs/: 下载layer
/healthz: 查看registry运行状态
/version: 查看registry版本信息
/favicon.ico: 获取favicon图标