当前位置: 首页 > 知识库问答 >
问题:

Docker Comment按需激活容器

牛兴安
2023-03-14

我有一个在数据提要上执行阐述的应用程序。这个过程分为任务,所以我构造了一个docker-compose.yml文件,如下所示:

task1-service: 
  image: task1-image
task2-service: 
  image: task2-image
task3-service: 
  image: task3-image

每个任务服务由前一个任务的结束触发,并触发下一个任务,然后它可以退出。所以没有必要让每个服务都运行。

我想知道是否有一种解决方案可以让它们全部停止,并在需要时按需启动每项服务。我不知道docker compose是否是正确的解决方案,但我喜欢将描述的系统保存在一个yml文件中的想法。无论如何,其他解决方案也值得赞赏。

谢啦

共有1个答案

林鹭洋
2023-03-14

可以用不同的方法解决您的方法,其中之一是使用docker compose

首先,您可以使用docker-compose-d启动一个具体的服务(taskX-service)

其次,docker-comact还允许您配置容器之间的依赖关系。如果要按顺序运行它们,可以在depends_on:结构中指定。例如,要按顺序执行任务1、2和3,您可以使用:

task1-service: 
  image: task1-image
task2-service: 
  image: task2-image
  depends_on:
    - task1-service
task3-service: 
  image: task3-image
  depends_on: 
    - task2-service

此外,这个docker-compose.yml与首先我说的兼容:

docker-compose up -d task1-service
docker-compose up -d task2-service (also launchs task1-service)
docker-compose up -d task3-service (also launchs task2 and 1 service)

如果未指定任何容器,则当docker compose关闭时将停止compose文件中的所有容器。我希望它对你有用。

 类似资料:
  • 当实例的试用期结束时,Navicat Monitor 需要令牌以继续监控该实例。令牌可以作为永久许可证或订阅购买。若要管理你的令牌并许可你的实例,请前往“配置”->“激活令牌密钥和许可实例”。 【注意】永久许可证和订阅方案不能在同一个 Navicat Monitor 上使用。在更改激活方法之前,你需要取消激活令牌密钥或退出你的 Navicat ID。 永久许可证 如果你购买了永久许可证,你将收到一

  • 问题内容: 我正在尝试在Mac OS X 10.8.3上安装virtualenv和/或virtualenvwrapper 最近两天我一直在和python战斗。最终,我能够使用brew安装python 2.7.4。在我使用easy_install安装virtualenv之前。然后,我尝试将其卸载,以使我的计算机处于与我的一位同事相同的状态。也许我成功卸载了它,也许没有成功。我不知道如何测试。现在我应

  • 我想在用户导航到时给出以下对讲事件序列, 1)在导航到< code>DialogFragment时,初始焦点应该在正按钮上 2)对话框的标题描述应该在不关注它的的情况下公布 2) 最后,它应该读出肯定按钮的内容描述 上面的代码按照要求的顺序工作,但是它没有在最后宣布类类型,即按钮和动作描述“按选择激活”

  • 结束 当我通过ksession.insert(Object)将一些人插入工作记忆时,只计算第一个人,忽略其他的人。我对Drools激活组的理解是,如果我有X个规则,这些规则属于同一个激活组,具有不同的显着性值,那么每个人都将被规则处理,显着性最高的将被激发,其余的将被忽略。一旦完成,下一个人将通过并重复这个过程。我所经历的是,第一个触发该激活组中任何规则的人将禁用整个激活组,不再处理其他人员。有什

  • 我试图使我的wordpress网站翻译准备好,使用'poedit'。我激活翻译有问题。我想只翻译网站,而不是wordpress系统。我有我的. pot,. po和. mo文件在'语言'文件夹在我的主题目录,我有这个代码在我的functions.php文件: 那么,在poedit程序中保存并翻译所有内容后,如何在我的站点中激活它?我现在正在使用本地主机。

  • 行动时刻 - 激活NULL领域 请按照以下步骤激活NULL域: 编辑FreeRADIUS配置目录下的proxy.conf文件,并更改以下部分: #realm NULL { # authhost = radius.company.com:1600 # accthost = radius.company.com:1601 # secret = testing123 #} 更改为: realm NUL