鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 查看私有倉庫有哪些鏡像 如果私有倉庫帶有認證,在使用 curl 命令的時候需要帶上 -u 參數 使用方法: curl -XGET -u <倉庫用戶名>:<用戶名密碼> http://<倉庫ip地址>:<倉庫埠>/v2/_catalog curl ...
鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站
查看私有倉庫有哪些鏡像
如果私有倉庫帶有認證,在使用 curl 命令的時候需要帶上 -u 參數
使用方法:
curl -XGET -u <倉庫用戶名>:<用戶名密碼> http://<倉庫ip地址>:<倉庫埠>/v2/_catalog
curl -XGET -u admin:admin http://192.168.91.18:5000/v2/_catalog
輸出的格式為 json
{"repositories":["centos","debian","mysql","nginx","php"]}
如果輸出的鏡像很多,可以用 python 格式化 json 格式,方便查看
curl -s -XGET -u admin:admin http://192.168.91.18:5000/v2/_catalog | python -m json.tool
這樣看,也會直觀很多
{
"repositories": [
"centos",
"debian",
"mysql",
"nginx",
"php"
]
}
查看私有倉庫鏡像的tag
使用方法:
curl -XGET -u <倉庫用戶名>:<用戶名密碼> http://<倉庫ip地址>:<倉庫埠>/v2/<鏡像名稱>/targs/list
curl -XGET -u admin:admin http://192.168.91.18:5000/v2/centos/tags/list
輸出的格式為 json
{"name":"centos","tags":["latest","7"]}
如果輸出的 tag 很多,可以用 python 格式化 json 格式,方便查看
curl -s -XGET -u admin:admin http://192.168.91.18:5000/v2/centos/tags/list | python -m json.tool
這樣看,也會直觀很多
{
"name": "centos",
"tags": [
"latest",
"7"
]
}
刪除私有倉庫指定鏡像
確認是否開啟刪除功能
如果沒有開啟,執行刪除鏡像操作的時候,會返回如下兩種結果
{"errors":[{"code":"UNSUPPORTED","message":"The operation is unsupported."}]}
HTTP/1.1 405 Method Not Allowed
Content-Type: application/json; charset=utf-8
Docker-Distribution-Api-Version: registry/2.0
X-Content-Type-Options: nosniff
Date: Fri, 18 Mar 2022 04:12:22 GMT
Content-Length: 78
查找 registry 容器
docker ps | grep registry
以自己實際獲取的信息為準
3745255afa90 registry "/entrypoint.sh /etc…" About an hour ago Up About an hour 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
進入容器
registry 進入容器的終端是 sh
docker exec -it 3745255afa90 sh
一般都是在 /etc/docker/registry/config.yml
registry 鏡像裡面有 vi 沒有 vim
vi /etc/docker/registry/config.yml
我拉取的 registry 鏡像預設沒有配置 delete 功能
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
# 增加這裡的 delete 和 enabled ,註意 yaml 語法格式
# 如果有 delete ,並且 enable 為 true 表示已經開啟了刪除功能
delete:
enabled: true
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
修改完成後,重啟 registry 容器
docker restart 3745255afa90
獲取指定鏡像的 hash 值
使用方法
curl --header "Accept:application/vnd.docker.distribution.manifest.v2+json" -I \ -u <倉庫用戶名>:<用戶名密碼> http://<倉庫ip地址>:<倉庫埠>/v2/<鏡像名稱>/manifests/<鏡像 tag>
curl -I -XGET --header "Accept:application/vnd.docker.distribution.manifest.v2+json" \
-u admin:admin http://192.168.91.18:5000/v2/centos/manifests/latest
Docker-Content-Digest 這裡就會出現鏡像的 hash 值
HTTP/1.1 200 OK
Content-Length: 529
Content-Type: application/vnd.docker.distribution.manifest.v2+json
Docker-Content-Digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc"
X-Content-Type-Options: nosniff
Date: Fri, 18 Mar 2022 04:06:42 GMT
刪除私有倉庫中的鏡像
使用方法
curl -I -XDELETE -u <倉庫用戶名>:<用戶名密碼> \ http://<倉庫ip地址>:<倉庫埠>/v2/<鏡像名稱>/manifests/<獲取的 hash 值>
curl -I -XDELETE -u admin:admin \
http://192.168.91.18:5000/v2/centos/manifests/sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
返回的狀態碼是 202
HTTP/1.1 202 Accepted
Docker-Distribution-Api-Version: registry/2.0
X-Content-Type-Options: nosniff
Date: Fri, 18 Mar 2022 04:24:23 GMT
Content-Length: 0
再次查看 centos 鏡像的 tag 列表
curl -XGET -u admin:admin http://192.168.91.18:5000/v2/centos/tags/list
現在只有一個 7 這個 tag 的鏡像了
{"name":"centos","tags":["7"]}
原文鏈接:https://blog.csdn.net/u010383467/article/details/123571707