gpt4 book ai didi

docker - 如何在没有docker客户端的情况下将通过save命令创建的docker镜像推送到远程注册表

转载 作者:行者123 更新时间:2023-12-02 18:41:46 27 4
gpt4 key购买 nike

我正在寻找使用 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"

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

最佳答案

将构建的 docker 镜像推送到 Docker registry

docker push image-name

您可能需要创建/更新配置文件:/etc/docker/daemon.json 与

{ "insecure-registries":["myregistry.example.com:5000"] }

并且需要重启docker:

sudo /etc/init.d/docker restart

关于docker - 如何在没有docker客户端的情况下将通过save命令创建的docker镜像推送到远程注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36751404/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com