将Openshift图像的内容导出到文件中



我已经为此搜索了一段时间。我无法访问用于构建映像的二进制项,因为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

这说的是推,但你想拉。

最新更新