从私有注册表中删除docker镜像会导致-不支持该操作



我正在尝试使用API调用从私有docker注册表中删除图像-

curl -X DELETE http://<ip>:5000/v2/lightweighttest/manifests/lightweighttest:1

但是结果是-

{"errors":[{"code":"UNSUPPORTED","message":"The operation is unsupported."}]}

我在谷歌上搜索了相同的内容,但它建议-

  1. 运行docker注册表,标记-REGISTRY_STORAGE_DELETE_ENABLED=true但因为我已经有docker注册表运行了很多图像。这对我没有帮助

  2. 在位于/var/lib/registry/etc/docker/registry的配置文件中进行以下更改但我无法在两个位置找到registry目录-

    存储:删除:启用:真正的

请建议我如何从运行docker注册表的私有注册表删除图像?

  1. 您需要检查注册表版本,只有注册表2支持通过URL删除图像
  2. 需要注册表的位置来触发垃圾收集。默认是/etc/docker/registry/config.yml,但你可以在容器中运行ps,它应该是进程1的参数。
  3. 如果您可以重新启动容器,您可以将环境变量添加到入口点,例如在容器内:sed -i -e '/exec/iexport REGISTRY_STORAGE_DELETE_ENABLED=true' entrypoint.sh

然而,我真的建议你使用卷,因为容器覆盖的fs性能较差,你不能升级,我很讨厌失去所有的映像。

相关内容

最新更新