Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t从Docker代理/镜像/缓存注册表中删除图像_Docker_Docker Registry_Docker Proxy - Fatal编程技术网

Can';t从Docker代理/镜像/缓存注册表中删除图像

Can';t从Docker代理/镜像/缓存注册表中删除图像,docker,docker-registry,docker-proxy,Docker,Docker Registry,Docker Proxy,通过docker compose运行注册表:2图像1.27.4,docker本身位于19.03.13 注册表被配置为,也被一些人称为“代理”或“镜像”。设置非常基本,并遵循官方文档: version: 0.1 log: fields: service: registry storage: cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry delete:

通过docker compose运行
注册表:2
图像
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
使用标准过程通过API删除此注册表上的图像时

  • 查找标记名

    export HEADER="Accept: application/vnd.docker.distribution.manifest.v2+json"
    curl -s -H $HEADER https://<HOST>/v2/<CATALOG>/tags/list
    
    当我对注册表配置中注释掉的
    代理
    位执行相同操作时,它会工作


    这让人感觉非常熟悉,公平地说,这是有记录的。这个用例不是,或者是?

    注册表:2映像的拉取缓存功能正是为拉取而设计的。任何其他操作,如推送或删除,都不受支持,预计会出现错误。要在源位置删除清单,您需要对该注册表运行delete命令。我不相信有任何API会过早地只从缓存中删除清单,这是一个固定的7天过期时间。

    我很好奇对缓存运行删除的用例是什么?您是想在缓存中节省空间、刷新过时的条目,还是想从上游注册表中删除映像?感谢您的回答,来回答您上面的问题:我的具体用例能够删除意外进入其中的某些映像。如果我理解正确,我不应该这样做,而是让注册表通过清除过时的图像来修复自己?在我的例子中,这意味着确保没有人在7天内提取这些不需要的图像?@zb226我相信无论是否已提取,都需要7天。据我所知,手动清除缓存的唯一选项是重新启动存储/卷重置。当图像通过时,它会自动重新填充。根据刚获得的经验:无条件7天是正确的。有点遗憾的是,这些信息没有正式记录(除了来源)。好吧,现在至少我们有了这样一个答案供人们去谷歌搜索。再次感谢。
    curl -sI -k -H $HEADER https://<HOST>/v2/<CATALOG>/manifests/<TAG> 
    
    curl -H $HEADER -X DELETE https://<HOST>/v2/<CATALOG>/manifests/<SHA>
    
    404 page not found