我有一个应用程序,可以对数据提要进行详细说明。该过程分为多个任务,因此我构造了一个docker-compose.yml
文件,如下所示:
task1-service:
image: task1-image
task2-service:
image: task2-image
task3-service:
image: task3-image
每个任务服务由上一个任务的结尾触发,并触发下一个任务,然后可以退出。因此,没有必要保持每个服务的运行。
我想知道是否有解决方案可以使它们全部停止,并在需要时按需启动每个服务。
我不知道docker compose
是否是正确的解决方案,但我喜欢这样的想法,可以将描述的系统保存在一个yml
文件中。无论如何,其他解决方案也是值得赞赏的。
谢谢
答案 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
停止撰写文件中的所有容器。
我希望它对您有用。