我正在尝试使用API调用从私有docker注册表中删除图像-
curl -X DELETE http://<ip>:5000/v2/lightweighttest/manifests/lightweighttest:1
但是结果是-
{"errors":[{"code":"UNSUPPORTED","message":"The operation is unsupported."}]}
我在谷歌上搜索了相同的内容,但它建议-
运行docker注册表,标记-
REGISTRY_STORAGE_DELETE_ENABLED=true
但因为我已经有docker注册表运行了很多图像。这对我没有帮助在位于
/var/lib/registry
或/etc/docker/registry
的配置文件中进行以下更改但我无法在两个位置找到registry
目录-存储:删除:启用:真正的
请建议我如何从运行docker注册表的私有注册表删除图像?
- 您需要检查注册表版本,只有注册表2支持通过URL删除图像
- 需要注册表的位置来触发垃圾收集。默认是
/etc/docker/registry/config.yml
,但你可以在容器中运行ps
,它应该是进程1的参数。 - 如果您可以重新启动容器,您可以将环境变量添加到入口点,例如在容器内:
sed -i -e '/exec/iexport REGISTRY_STORAGE_DELETE_ENABLED=true' entrypoint.sh
然而,我真的建议你使用卷,因为容器覆盖的fs性能较差,你不能升级,我很讨厌失去所有的映像。