docker 网络调用 registry 的 RESTful API

  • 1.version

  • 2.pull

  • 3.push

VERSION

GET /V2/ 获取registry版本号,一般用以测试私有registry是否运行正确

200 支持V2接口
401 Unauthorized 未授权,需要授权才可访问
404 Not Found 不支持V2接口

PULL

GET /v2/IMAGE_NAME/manifests/IMAGE_TAG 获取镜像manifests文件

得到manifests文件,其格式如下:
{
   "name": IMAGE_NAME,
   "tag": IMAGE_TAG,
   "fsLayers": [
      {
         "blobSum": <digest>
      },
      ...
    ]
   ],
   "history": <v1 images>,
   "signature": <JWS>
}

HEAD /v2/IMAGE_NAME/manifests/IMAGE_TAG 获取镜像manifests文件信息

200 OK
Content-Length: <length of manifest>
Docker-Content-Digest: <digest>

PUSH

POST /v2/IMAGE_NAME/blobs/uploads/ 开始上传

202 Accepted
Location: /v2/IMAGE_NAME/blobs/uploads/<uuid>
Range: bytes=0-<offset>
Content-Length: 0
Docker-Upload-UUID: <uuid>

POST /v2/IMAGE_NAME/blobs/uploads/UUID 上传镜像层[注意uuid由请求上传后响应的header中给出]

GET /v2/IMAGE_NAME/blobs/uploads/UUID 获取上传进度

PUT /v2/IMAGE_NAME/blobs/uploads/UUID?digest=DIGEST 上传完成[上传结束必须调用此接口]

DELETE /v2/IMAGE_NAME/blobs/uploads/UUID 取消上传

PATCH /v2/IMAGE_NAME/blobs/uploads/UUID 分片上传

分片上传参数
Content-Length: <size of chunk>
Content-Range: <start of range>-<end of range>
Content-Type: application/octet-stream

<Layer Chunk Binary Data>

 

posted @ 2018-01-22 20:58  小天儿  阅读(1746)  评论(1)    收藏  举报