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