Docker 按需组合激活容器

Docker Compose activate container on demand

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

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

每个task-service都是前一个结束触发,再触发下一个,然后就可以退出了。所以没有必要保留每个服务 运行.

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

谢谢

可以通过不同的方式解决您的问题,其中之一是 docker-compose

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

中有更多详细信息

其次,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 将停止撰写文件中的所有容器。 希望对你有用。