docker registry v2 API的使用

1.获取用户认证信息

对用户名和密码,进行base64编码。

格式:echo -n "用户名:密码" | base64

执行命令,得到认证信息。

2.查询镜像是否存在以及标签列表

方法:GET  /v2/<name>/tags/list

其中<name>为镜像名

(1)携带认证信息发起请求

格式:curl -v -H "Authorization: Basic 认证信息" -X GET https://docker.yun.ccb.com/v2/<name>/tags/list

执行命令,图例表示获取2048镜像的标签列表

(2)得到返回结果,如果镜像存在,则返回镜像列表

(3)如果镜像不存在,则返回空列表

3.列出所有镜像列表

方法:GET  /v2/_catalog

(1)请求api,获取所有镜像列表

格式:

curl -v -H "Authorization: Basic 认证信息" -X GET https://docker.yun.ccb.com/v2/_catalog

执行命令:

(2)得到返回列表信息

4.获取镜像信息

方法:GET  /v2/<name>/manifests/<reference>

其中<name>为镜像名,<reference>可以是"tag"或"digest",本小节用python代码演示。

(1)得到返回列表信息把用户认证信息填入代码的请求头

(2)得到返回列表信息请求url, 获取镜像信息

格式:

url = "https://docker.yun.ccb.com/v2/<name>/manifests/<tag>"

执行命令,图例表示获取ubuntu:latest的镜像信息

(3)得到返回列表息得到返回信息,如下图显示:

 

5.删除镜像

方法:DELETE  /v2/<name>/manifests/<reference>

其中<name>为镜像名,<reference>只能是"digest"

(1)填入认证信息、"name"和"digest",删除镜像。"digest"信息可由4.或6.得到。

格式:

curl -v -H "Authorization: Basic 认证信息" -X DELETE https://doceker.yun.ccb.com/v2/<name>/manifests/<digest>

执行命令,图例表示删除ubuntu镜像

(2)得到返回结果,删除成功

6.查看本地镜像的digest方法

(1)外网上传镜像,获取该镜像的digest

格式:

sudo docker push docker.yun.ccb.com/<name>:<tag>

执行命令,图例显示获取ubuntu:latest的digest

(2)也可以通过"docker images --digests"命令,获取digest

执行命令,找到<name>:<tag>对应的digest

附录:

代码演示

import requests


class conn_dockerregistry():
    def __init__(self):
        self.headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
        "Authorization": "Basic MTAwMDA0NjAXXXXXXXXXvbWluZzpLYW5nNjUzNDU2"}

    #查询操作
    def get_images(self):
        # 1.获取2048镜像的标签列表
        # url = 'https://docker.yun.ccb.com/v2/public/2048/tags/list'
        # 2.获取所有镜像列表
        # url = 'https://docker.yun.ccb.com/v2/_catalog'
        # 3.获取ubuntu:lstest的信息
        url = 'https://docker.yun.ccb.com/v2/10000460xxxxx/ubuntu/manifests/latest'
        # 4.删除ubuntu镜像
        # url = 'https://docker.yun.ccb.com/v2/10000460xxxxx/ubuntu/manifests/sha256:acd85db6e4b18aafa7fcde5480872909bd8e6d5fbd4e5e790ecc09acc06a8b78'
        r = requests.get(url=url,headers=self.headers)
        print(r.status_code,r.headers,r.text)


    # 运行
    def run(self):
        fd = conn_dockerregistry.get_images()


if __name__ == '__main__':
    conn_dockerregistry = conn_dockerregistry()
    conn_dockerregistry.run()






 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kan2016

你的鼓励是我创造优秀博客的动源

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值