ホームページ  >  に質問  >  本文

docker删除仓库中的镜像问题

配置文件挂载到本地的宿主机了

docker run -d -p 6000:5000 --restart=always --name registry -v `pwd`/config.yml:/etc/docker/registry/config.yml registry:2

修改过配置文件

查看仓库中的镜像信息

 curl -X GET http://127.0.0.1:6000/v2/_catalog
{"repositories":["myfirstimage","myfirstimage_2","myfirstimage_3"]}

获取digest值

curl  -I -X GET http://127.0.0.1:6000/v2/myfirstimage/manifests/latest                                                                 
HTTP/1.1 200 OK
Content-Length: 5559
Content-Type: application/vnd.docker.distribution.manifest.v1+prettyjws
Docker-Content-Digest: sha256:3a07b4e06c73b2e3924008270c7f3c3c6e3f70d4dbb814ad8bff2697123ca33c
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:3a07b4e06c73b2e3924008270c7f3c3c6e3f70d4dbb814ad8bff2697123ca33c"
X-Content-Type-Options: nosniff
Date: Sun, 31 Jul 2016 11:09:22 GMT

删除测试

curl  -X DELETE http://127.0.0.1:6000/v2/myfirstimage/manifests/sha256:3a07b4e06c73b2e3924008270c7f3c3c6e3f70d4dbb814ad8bff2697123ca33c
{"errors":[{"code":"MANIFEST_UNKNOWN","message":"manifest unknown"}]}

删除失败,这是为咋的

巴扎黑巴扎黑2758日前923

全員に返信(2)返信します

  • 大家讲道理

    大家讲道理2017-04-24 16:02:51

    問題は、digest を取得するステップにあります。レジストリ 2.3 以降のバージョンでは、誤って削除されないようにするために、digest を取得するときに特別なヘッダーを提供する必要があります: digest 的那一步。在 registry 2.3 及其以后的版本,为了防止误删除,在取 digest 的时候,必须提供一个特殊的头:

    Accept: application/vnd.docker.distribution.manifest.v2+json

    否则会返回一个错误的 digest。因此,取 digest 的语句应该用下面的形式:

    curl --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
      -I \
      -X HEAD http://127.0.0.1:6000/v2/myfirstimage/manifests/latest

    这样取到的 digest リーリー

    それ以外の場合、間違った digest が返されます。したがって、digest を取得するステートメントは次の形式にする必要があります:

    リーリー

    この方法で得られた digest は正しいです。 🎜 🎜公式ドキュメントを参照してください: https://docs.docker.com/regis...🎜

    返事
    0
  • 高洛峰

    高洛峰2017-04-24 16:02:51

    docker run -d -p 6000:5000 --restart=always --name registry6 -v pwd/config.yml:/etc/docker/registry/config.yml docker.io/registry:2.5.0

    エラー: 37ba01d64aec14577e9e55ea2b2bfc4487eb070fad1b1c40e76e7cbddc916e6a
    /usr/bin/docker-current: デーモンからのエラー応答: 無効なヘッダー フィールド値 "oci ランタイム エラー:container_linux.go:247:コンテナー プロセスの開始により "process_linux.go:35" 9: コンテナの初期化が原因で " rootfs_linux .go:54: 「/root/config.yml」を「/var/lib/docker/dev」の rootfs 「/var/lib/docker/devicemapper/mnt/2e35c587d0e8ff8ac8811a58b23cd3a489ff04b4eaa47b3d25fda2bd46b7646b/rootfs」にマウントしますアイスマッパー/分nt/ 2e35c587d0e8ff8ac8811a58b23cd3a489ff04b4eaa47b3d25fda2bd46b7646b/rootfs/etc/docker/registry/config.yml\" が原因で "ディレクトリではありません"""n" 何が起こっているのでしょうか? ? config.yml も変更したいと思います。アドバイスください

    返事
    0
  • キャンセル返事