【问题标题】:Docker - start a container at random timeDocker - 随机启动一个容器
【发布时间】:2021-12-26 11:48:07
【问题描述】:

我有 3 个安装了 docker 的 vps。我已经创建了一个 docker 映像,我想知道是否有可能配置 docker 或 docker-compose 以使这 3 个容器每天仅在随机时间运行一次。

除了从 Linux crontab 调用的 bash 脚本中配置命令以启动 docker 之外,我没有找到任何其他方法,该脚本会随机等待一段时间。有更好更好的解决方案吗? 也许是 k8s / k3s?

【问题讨论】:

  • Docker/Docker-compose 没有本地方式来安排容器随机运行。正如您所建议的,cronjob 将是最简单的方法。如果你已经在使用 k8s,Kubernetes 本身就支持 cronjobs。查看kubernetes.io/docs/concepts/workloads/controllers/cron-jobs
  • 我认为您提供的解决方案 - 从 linux crontab 调用的 bash 脚本听起来是一种易于实施且成本低廉的解决方案

标签: docker kubernetes docker-compose dockerfile containers


【解决方案1】:

如果“随机性”是您的应用程序行为的一部分,那么您应该将此逻辑包含在服务/容器之一中,因此这很容易。您正在使用 docker-compose 运行整个堆栈,它可以正常工作。

除了Crontab 或其他外部调度程序(如 kubernetes cron 作业)之外,如果您需要使用这些 docker 服务,则每天一次随机运行这三个容器。

【讨论】:

    【解决方案2】:

    这是为提高可见性而发布的社区 wiki 答案。随意扩展它。

    下面列出了此问题的可能解决方案。

    Docker

    Bash 脚本,从 Linux crontab 调用来启动 Docker。

    Kubernetes

    由于 Docker / Docker-compose 没有自己的方法来安排容器在随机时间运行,因此 CronJob 可能是最简单的方法。

    有关 CronJobs 的更多信息,请访问the official documentation

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多