如何在谷歌云上安排 docker 运行

Posted

技术标签:

【中文标题】如何在谷歌云上安排 docker 运行【英文标题】:How to schedule a docker run on google cloud 【发布时间】:2019-08-07 17:18:51 【问题描述】:

我的项目中有 3 个批次。我已将所有 3 个批次放在一个 docker 映像中。现在要运行任何特定批处理,我使用命令行参数调用 docker run,shell 脚本会考虑该参数并在映像中启动适当的批处理。

现在要在不同的时间段安排这 3 个批次,我可以对具有适当参数的相同 docker 映像使用 3 个命令。但是如何部署(app 引擎或 gke)以及从哪里触发命令?在云调度程序中,只有 Pub Sub / HTTP Url 触发选项可用。所以找不到任何出路。

你能推荐吗?

提前致谢。

问候,

阿林丹

【问题讨论】:

【参考方案1】:

您的问题提出了一些问题,但 -- 首先 -- 您为什么希望使用 App Engine 或 GKE?

IIUC 您可能可以使用 Kubernetes CronJobs 解决您的问题: https://cloud.google.com/kubernetes-engine/docs/how-to/cronjobs

Cloud Scheduler 使用 HTTP 和 Pub/Sub 是因为这为服务提供了一种触发其事件的通用方式。如果您希望使用 Cloud Scheduler,您可以开发一个伴侣(又名“sidecar”)图像,该图像公开一个例如HTTP 接口,当被调用时,它会针对您的容器运行正确的命令。然后,您对 Cloud Scheduler 进行编程,以根据您的计划调用 sidecar,然后它们依次调用您的容器映像。此处的 Cloud Scheduler 示例中采用了与此方法类似的方法: https://cloud.google.com/scheduler/docs/start-and-stop-compute-engine-instances-on-a-schedule#set_up_the_functions_with

如果您不想使用 Kubernetes,我认为最简单的解决方案是创建一个运行您的 cron 计划的 Compute Engine 实例,它只需根据需要在您的映像上调用适当的 docker run 命令。

【讨论】:

以上是关于如何在谷歌云上安排 docker 运行的主要内容,如果未能解决你的问题,请参考以下文章

尝试在谷歌云运行上安装日志记录但它失败了

如何在谷歌云构建中访问 git 标签?

在谷歌云上创建集群

在谷歌云上运行 nohup 后 Chromedriver 关闭

在谷歌云平台部署python脚本

如何在谷歌云上正确托管 node.js 应用程序?