docker-registry 私有倉庫映象 之 檢視與刪除

哈哈哈hh發表於2022-07-04

映象下載、域名解析、時間同步請點選  阿里雲開源映象站

檢視私有倉庫有哪些映象

如果私有倉庫帶有認證,在使用 curl 命令的時候需要帶上 -u 引數

使用方法:

curl -XGET -u <倉庫使用者名稱>:<使用者名稱密碼> 倉庫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 <倉庫使用者名稱>:<使用者名稱密碼> 倉庫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 <倉庫使用者名稱>:<使用者名稱密碼> 倉庫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 <倉庫使用者名稱>:<使用者名稱密碼> \ 倉庫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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70003733/viewspace-2904063/,如需轉載,請註明出處,否則將追究法律責任。

相關文章