docker删除仓库中的镜像问题

浏览:48日期:2023-02-25

问题描述

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

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

修改过配置文件docker删除仓库中的镜像问题

查看仓库中的镜像信息

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 OKContent-Length: 5559Content-Type: application/vnd.docker.distribution.manifest.v1+prettyjwsDocker-Content-Digest: sha256:3a07b4e06c73b2e3924008270c7f3c3c6e3f70d4dbb814ad8bff2697123ca33cDocker-Distribution-Api-Version: registry/2.0Etag: 'sha256:3a07b4e06c73b2e3924008270c7f3c3c6e3f70d4dbb814ad8bff2697123ca33c'X-Content-Type-Options: nosniffDate: 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'}]}

删除失败,这是为咋的

问题解答

回答1:

问题出在了取 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 才是正确的。

参考官方文档:https://docs.docker.com/regis...

回答2:

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: Error response from daemon: invalid header field value 'oci runtime error: container_linux.go:247: starting container process caused 'process_linux.go:359: container init caused 'rootfs_linux.go:54: mounting '/root/config.yml' to rootfs '/var/lib/docker/devicemapper/mnt/2e35c587d0e8ff8ac8811a58b23cd3a489ff04b4eaa47b3d25fda2bd46b7646b/rootfs' at '/var/lib/docker/devicemapper/mnt/2e35c587d0e8ff8ac8811a58b23cd3a489ff04b4eaa47b3d25fda2bd46b7646b/rootfs/etc/docker/registry/config.yml' caused 'not a directory'''n'.docker删除仓库中的镜像问题这说怎么回事??我也想修改config.yml。求指教

相关文章: