无法从 Docker 代理/镜像/缓存注册表中删除图像
Can't delete images from a Docker proxy / mirror / cache registry
运行 registry:2
图像通过 docker-compose 1.27.4
,docker 本身位于 19.03.13
.
注册表配置为 "pull through cache",某些人也称为“代理”或“镜像”。设置非常基本并遵循官方文档:
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
delete:
enabled: true
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
proxy:
remoteurl: https://registry-1.docker.io
使用标准程序通过 API...
删除此注册表中的映像时
查找标签名称
export HEADER="Accept: application/vnd.docker.distribution.manifest.v2+json"
curl -s -H $HEADER https://<HOST>/v2/<CATALOG>/tags/list
找到对应的SHA
curl -sI -k -H $HEADER https://<HOST>/v2/<CATALOG>/manifests/<TAG>
通过 SHA 删除
curl -H $HEADER -X DELETE https://<HOST>/v2/<CATALOG>/manifests/<SHA>
...我收到最后一个命令的 404:
404 page not found
当我对注册表配置中注释掉的 proxy
位执行相同操作时,它起作用了。
这对 来说非常熟悉,公平地说,这是有记录的。这个用例不是 - 或者是?
registry:2
图像的拉取缓存功能正是为此而设计的,拉取。不支持任何其他操作,如推送或删除,预计会出错。要在源中删除清单,您需要 运行 针对该注册表的删除命令。我不相信有任何 API 会过早地仅从缓存中删除清单,这是一个固定的 7 天过期时间。
运行 registry:2
图像通过 docker-compose 1.27.4
,docker 本身位于 19.03.13
.
注册表配置为 "pull through cache",某些人也称为“代理”或“镜像”。设置非常基本并遵循官方文档:
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
delete:
enabled: true
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
proxy:
remoteurl: https://registry-1.docker.io
使用标准程序通过 API...
删除此注册表中的映像时查找标签名称
export HEADER="Accept: application/vnd.docker.distribution.manifest.v2+json" curl -s -H $HEADER https://<HOST>/v2/<CATALOG>/tags/list
找到对应的SHA
curl -sI -k -H $HEADER https://<HOST>/v2/<CATALOG>/manifests/<TAG>
通过 SHA 删除
curl -H $HEADER -X DELETE https://<HOST>/v2/<CATALOG>/manifests/<SHA>
...我收到最后一个命令的 404:
404 page not found
当我对注册表配置中注释掉的 proxy
位执行相同操作时,它起作用了。
这对
registry:2
图像的拉取缓存功能正是为此而设计的,拉取。不支持任何其他操作,如推送或删除,预计会出错。要在源中删除清单,您需要 运行 针对该注册表的删除命令。我不相信有任何 API 会过早地仅从缓存中删除清单,这是一个固定的 7 天过期时间。