在Azure Batch Shipyard上运行Docker Compose

时间:2018-02-19 10:54:54

标签: azure azure-batch

我想知道是否有人知道如何在Batch Shipyard上运行compose,或者没有直接使用compose,允许多个容器在作业中的同一节点上协同工作。这可能吗?

澄清 - 我有几个一起工作的容器解析并处理文件。主容器通过网络呼叫使用其他服务。我要复制的撰写文件的简化示例如下:

version: "3"
services:
  primary:
    image: "primaryimage"
    depends_on:
      - secondary
    environment:
      SECONDARY_URL: secondary:8888
  secondary:
    image: secondaryimage

primary中运行的代码中,调用SECONDARY_URL中给出的URL对数据执行某些转换,并返回响应。

2 个答案:

答案 0 :(得分:1)

Azure Batch(Shipyard)没有对Docker Compose的开箱即用支持。

但是如果您已经熟悉Docker Compose,那么将它转换为造船厂配置文件并不太难。

如果要运行MPI /多实例任务(一组节点合作解决部分计算),请查看this

但是,Service Fabric确实支持Docker Compose。因此,如果Docker Compose支持是严格的要求,您可以将Azure Batch设置与对Service Fabric群集的调用结合起来。

答案 1 :(得分:0)

这是允许此工作的解决方法。请注意,作为一种解决方法,它不受官方支持,并且可能随时中断。

  • 使用Docker compose创建一个Docker镜像,其中包含Docker本身(更具体地说,只需要客户端部分)。
  • 对于tasks中的jobs.yaml规范:
    • docker_image是您在上面创建的图片
    • 使用resource_filesinput_data进入您的撰写文件以执行任务
    • additional_docker_run_options应该有一个项目:
      • -v /var/run/docker.sock:/var/run/docker.sock
    • command将是您的docker-compose up命令,其中包含您需要的任何参数
  • 确保您的config.yaml指定Docker撰写文件所需的所有Docker镜像以及包含Docker / docker组合的Docker镜像。