docker registry v2 API的使用
1.获取用户认证信息对用户名和密码,进行base64编码。格式:echo -n "用户名:密码" | base64执行命令,得到认证信息。2.查询镜像是否存在以及标签列表方法:GET /v2/<name>/tags/list其中<name>为镜像名(1)携带认证信息发起请求格式:curl -v -H "Auth
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()
更多推荐
所有评论(0)