1.查询镜像是否存在以及标签列表
方法:GET /v2/<name>/tags/list
(1)对用户名和密码,进行base64编码,在终端输入下面命令,得到token。
格式:echo -n "用户名:密码" | base64
(2)携带token发起请求,把(1)得到的token填入下列位置。
格式:curl -v -H "Authorization: Basic "token" -X GET https://docker.yun.ccb.com/v2/name/tags/list
注:(1)(2)步骤也可以合写为:
curl -v -H "Authorization: Basic $(echo -n "用户名:密码" | base64)" -X GET https://docker.yun.ccb.com/v2/name/tags/list
(3)得到返回结果,如果镜像存在,则返回镜像列表
(4)如果镜像不存在,则返回空列表
2.列出所有镜像列表
方法:GET /v2/_catalog
(1)请求url "https://docker.yun.ccb.com/v2/_catalog",获取所有镜像列表。
格式:
curl -v -H "Authorization: Basic $(echo -n "用户名:密码" | base64)" -X GET https://docker.yun.ccb.com/v2/_catalog
得到返回列表信息
3.获取镜像名和引用标识的清单
方法:GET /v2/<name>/manifests/<reference>
(1)上传镜像,获取该镜像的digest
也可以执行docker images --digests命令,复制已上传成功镜像的digest
(2)执行下列命令,获取清单
格式:
curl -v -H "Authorization: Basic $(echo -n "用户名:密码" | base64)" -X GET https://docker.yun.ccb.com/v2/name/manifests/digest
可以看到返回的数据信息
4.删除镜像
方法:DELETE /v2/<name>/manifests/<reference>
(1)执行"docker images --digests"命令,复制所要删除镜像的digest
(2)执行下列命令,获取清单
格式:
curl -v -H "Authorization: Basic token" -X DELETE https://doceker.yun.ccb.com/v2/name/manifests/digest
(3)得到返回结果
附件:python RESTFUL请求方式
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 MTAwMDAxxxxxxxxxxxxxxxWluZzpLYW5nNjUzNDU2"}
#查询操作
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引用标识digest的清单
url = 'https://docker.yun.ccb.com/v2/10000460xxxx-xxxx/ubuntu/manifests/sha256:acd85db6e4b18aafxxxxxxxxxxxxd8e6c09acc06a8b78'
# 4.删除镜像
# url = 'https://docker.yun.ccb.com/v2/10000460xxxx-xxxx/ubuntu/manifests/sha256:acd85db6e4bxxxxxxxxxxxbd4e5e790ecc09acc06a8b78'
r = requests.get(url=url,headers=self.headers)
print(r.status_code)
print(r.text)
# print(r.json())
# 运行
def run(self):
fd = conn_dockerregistry.get_images()
if __name__ == '__main__':
conn_dockerregistry = conn_dockerregistry()
conn_dockerregistry.run()
docker官方文档链接:https://docs.docker.com/registry/spec/api/#listing-repositories