zb2*_*226 2 docker docker-registry docker-proxy
registry:2通过 docker-compose运行镜像1.27.4,docker 本身位于19.03.13.
注册表被配置为“拉取缓存”,也被某些人称为“代理”或“镜像”。设置非常基本,遵循官方文档:
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
Run Code Online (Sandbox Code Playgroud)
当使用标准程序通过 API 删除此注册表上的图像时...
查找标签名称
export HEADER="Accept: application/vnd.docker.distribution.manifest.v2+json"
curl -s -H $HEADER https://<HOST>/v2/<CATALOG>/tags/list
Run Code Online (Sandbox Code Playgroud)
找到对应的SHA
curl -sI -k -H $HEADER https://<HOST>/v2/<CATALOG>/manifests/<TAG>
Run Code Online (Sandbox Code Playgroud)
通过 SHA 删除
curl -H $HEADER -X DELETE https://<HOST>/v2/<CATALOG>/manifests/<SHA>
Run Code Online (Sandbox Code Playgroud)
...最后一个命令我得到 404:
404 page not found
Run Code Online (Sandbox Code Playgroud)
proxy当我对注册表配置中注释掉的位执行相同操作时,它可以工作。
这感觉非常熟悉,因为无法推动这样一个“通过缓存拉取”注册表,公平地说,这是有记录的。这个用例不是——或者是吗?
图像的拉取缓存功能registry:2正是为拉取而设计的。任何其他操作(例如推送或删除)均不受支持,并且预计会出现错误。要从源删除清单,您需要针对该注册表运行删除命令。我不相信有任何 API 可以仅从缓存中过早地删除清单,它的过期时间是固定的 7 天。
| 归档时间: |
|
| 查看次数: |
1098 次 |
| 最近记录: |