我正在寻找使用 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容器中的多个应用程序吗
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包