如何从公共注册表中提取Docker映像并将其推送到私有openshift?

时间:2018-07-25 08:07:01

标签: docker openshift openshift-origin openshift-client-tools

我需要从openshift模板文件中提取所有图像,在我的情况下是openwhisk
我正在尝试将该项目部署在专用网络上,因此我无法从那里访问docker的官方存储库,因此需要自己推送映像。
我希望有一个脚本/工具来自动化该过程。

2 个答案:

答案 0 :(得分:0)

没有可用的工具/脚本,但是您可以编写小型Shell脚本来实现。

如果不允许公共dockerhub注册表,则可以使用私有的单独注册表

将图像拖入本地笔记本电脑中,然后对其进行标记并推送至openshift注册表。 将所有映像推送到openshift之后,导入openshift模板以部署您的应用程序。

以下是单个图像的步骤。您可以定义图像列表并将其循环到列表上。

 docker pull imagename
 oc login https://127.0.0.1:8443 --token=<hidden_token> #copy from https://your_openshift_server:port/console/command-line
 oc project test
 oc create imagestream imagename
 docker login -u `oc whoami` -p `oc whoami --show-token` your_openshift_server:port
 docker tag imagename your_openshift_server:port/openshift_projectname/imagename:tag
 docker push your_openshift_server:port/openshift_projectname/imagename:tag

您可以在第suggested by graham-dumpleton页上获取更多详细信息

答案 1 :(得分:0)

Graham Dumpleton的书谈到了这一点。您创建所有使用的图像的列表(JSON),并将其导入到openshift命名空间中。由于您的OpenShift处于脱机状态/已断开连接,因此您还将所有远程注册表更改为内部托管注册表的URL。

导入所有JBoss图像的示例:https://github.com/projectatomic/adb-utils/blob/master/services/openshift/templates/common/jboss-image-streams.json

相关问题