我一直在寻找这个。我无权访问用于构建映像的二进制项,因为人工迁移破坏了存储库。我想从图像中提取一个特别珍贵的二进制文件。我知道docker save
会救我,但我无法访问 docker,只能访问oc
客户端。
编辑:
环顾一圈后,认为 docker-registry API 应该是要走的路。调试oc
docker-registry pod 的客户端和日志,发现似乎使用了 v1 和 v2 API 版本。
不知何故,不能比版本检查更进一步。
从 oc 获取身份验证令牌和注册表 url:
TOKEN=`oc whoami -t`
URL="https://"`oc -n default get route docker-registry -o jsonpath="{.status.ingress[0].host}"
然后得到正确的回应:
curl -k -X GET -H "Authorization: Bearer $TOKEN" "$URL/v2/"
...
HTTP/1.1 200 OK
但:
curl -k -X GET -H "Authorization: Bearer $TOKEN" "$URL/v2/_catalog"
...
HTTP/1.1 400 Bad Request