我已经为此搜索了一段时间。我无法访问用于构建映像的二进制项,因为artifactory迁移破坏了repo。有一个特别珍贵的二进制,我很想从图像中提取。我知道docker save
会救我,但我不能访问docker,只能访问oc
客户端。
编辑:
看了一眼之后,认为docker-registrate API应该是应该走的路。调试oc
客户端和docker-registry pods的日志,发现似乎同时使用了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
如果暴露,您可以登录到内部映像注册表,然后将映像拉回到本地系统,并使用它执行您想要的操作。登录说明可在以下位置找到:
- http://cookbook.openshift.org/image-registry-and-image-streams/how-do-i-push-an-image-to-the-internal-image-registry.html
这说的是推,但你想拉。