Docker Compose按需激活容器

时间:2018-08-27 08:41:27

标签: docker docker-compose orchestration

我有一个应用程序,可以对数据提要进行详细说明。该过程分为多个任务,因此我构造了一个docker-compose.yml文件,如下所示:

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

每个任务服务由上一个任务的结尾触发,并触发下一个任务,然后可以退出。因此,没有必要保持每个服务的运行。

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

谢谢

1 个答案:

答案 0 :(得分:0)

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

首先,您可以使用docker-compose up -d <service_name>启动一个具体服务(taskX-service) 您在docker-compose up for only certain containers

中有更多详细信息

第二,docker-compose还允许您配置容器之间的依赖关系。如果要按顺序运行它们,可以在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 down停止撰写文件中的所有容器。 我希望它对您有用。