docker - 从 CI 命令行运行 docker push --insecure-registries 或者至少没有 root 访问权限?
问题描述
首先,这不是关于如何放置的常见问题解答:
{ "insecure-registries" : ["myregistrydomain.com:5000"] }
在/etc/docker/daemon.json
. 我知道那件事。那行得通。如果你有root权限。我没有。
所以这个问题的一个措辞是:
是否有充分的理由docker push
不允许--insecure-registry
选择?有没有其他方法可以在没有root访问权限的情况下做到这一点?或者有没有我忽略的方法?
背景:我们希望将图像从构建服务器推送到我们设置的私有注册表。由于各种内部原因,我们无法为私有注册表获取 HTTPS 证书。而且我们没有对构建服务器的 root 访问权限。这意味着我们不能从 docker 推送到我们的私有注册表。
我已经开始使用黑客了。我首先构建 docker 映像,然后将映像保存到 tar 文件中
docker image save image:tag > image.tar
然后复制image.tar
到另一台运行 docker 的服务器,在那里我确实具有 root 访问权限并已编辑/etc/docker/daemon.json
,然后从那里推送到私有存储库。
这个“其他服务器”可以是真正的其他服务器或短暂的docker 映像,在构建服务器上运行Docker-in-docker aka docker:dind 。
由于我可以在没有 root 访问权限的情况下使用 docker-in-docker 映像来执行此操作,因此似乎没有安全原因docker push --insecure-registry server/image:tag
是不可能的。所以现在我想知道:为什么这是不可能的,或者我忽略了什么?
解决方案
推荐阅读
- huawei-mobile-services - ApiException:907122036:没有权利
- java - 从 MySQL 数据库中检索最近记录数时出现 Spring Boot/Hibernate 问题
- multithreading - 在线程之间共享相机帧
- vue.js - 在 Vue.js 中使用路由器渲染组件
- python - 解释缩放特征的逻辑回归系数
- node.js - 如何在不定义 Sequelize 模型的情况下使用 postgres 操作表
- git - 如何将 .env 文件存储在 github 中?
- reactjs - 如何通过 react-yandex-maps 在 yandex 地图上构建路线
- javascript - JS / GraphQL 视图 - BigCommerce 主 SKU
- tomcat - tomcat 9.0.38 构建问题