如何将通过保存命令创建的Docker映像推送到没有Docker客户端的远程注册表中

问题描述 投票:2回答:1

我正在寻找使用curl或类似方法将具有save命令创建的图像的tar文件推送到远程docker存储库的方法。所以我在寻找类似的>]

docker tag some/image repository:5000/some/image
docker push repository:5000/some/image

但未安装docker客户端。我想出了像

这样的代码
userToken=$(oc login -u admin -p password > /dev/null && oc whoami -t)
uploadURL=$(curl -u admin:"$userToken" -si -X POST "172.30.118.161:5000/v2/some/image/blobs/uploads/" | grep 'Location:' | cut -d ' ' -f 2 | tr -d '[:space:]')
digest="sha256:$(sha256sum image.tar | cut -d ' ' -f 1)"
curl -v -u admin:"$userToken" -T image.tar "$uploadURL&digest=$digest"
curl -v -u admin:"$userToken" -H "Content-Type: application/json" -H "Accept-Encoding: gzip" -T manifest.json -X PUT "172.30.118.161:5000/v2/some/image/manifests/latest"

似乎我已成功推送图像,但无法推送清单文件。由于JWS和图像结构(历史和图层),我不知道如何从头开始创建它。我可以从tar结构创建fsLayers,但不能从JWS和历史记录创建。可能有更简单的解决方案吗?

我正在寻找使用curl或类似方法将具有save命令创建的图像的tar文件推送到远程docker存储库的方法。所以我在寻找类似于docker标签的some / image仓库:5000 / ...

docker docker-registry
1个回答
0
投票

将构建的Docker映像推送到Docker注册表中

© www.soinside.com 2019 - 2024. All rights reserved.