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

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

相关文章:

eclipse - 使用 Docker 容器化开发环境是否合理?

docker - 主机上的一个Java安装可以管理部署在docker容器中的多个应用程序吗

hadoop - WSO2外部Hadoop

ubuntu - ubuntu下无法运行Eclipse Che

javascript - 从主机的 Angular 来看,Docker-compose 配置前端与后

docker - 无法使用端口映射通过 Marathon 启动 SonarQube docker 容

plugins - PyCharm Docker部署 “[Errno 2] No such file

docker - Gitlab CI docker环境下无法恢复mono项目的nuget包

docker - Vagrant:在 Windows 上使用 boot2docker 框同步文件夹

java - HTable.get(List )是否可以在返回的数组中放入空引用?