在dc / os上允许docker-in-docker?

时间:2017-12-04 05:39:25

标签: docker airflow dcos docker-in-docker

我正在尝试使用Airflow在DC / OS上安排'docker run'作业。这需要能够从包含Airflow的docker容器内启动docker容器。我能够在OSX上执行此操作,但只是运行:

docker run \
  -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock {image name}

使用DC / OS,我有同等的方法吗?

2 个答案:

答案 0 :(得分:0)

DC / OS方式将通过Mesos Master安排作业。这意味着编写一个框架,用于与Master协商资源分配(="启动Docker作业")。因此,在群集中的任何节点上启动作业,并为该任务提供可用资源。此类框架是另一项负责与Mesos Master进行资源协商的服务。这种框架有很多例子:

大多数都是在dcos-commons服务框架之上构建的。

解决方法是通过另一个现有框架启动工作,例如马拉松。马拉松提供a REST API

答案 1 :(得分:0)

看起来Airflow有一个自己的Apache Mesos调度程序实现,这非常好,正是您正在寻找的。如果您正在运行DC / OS,则可以安装多个Mesos调度程序,这些调度程序可以独立地启动Mesos上的任务,实际上不需要特权模式。

您可以在此处找到Airflow文档: https://airflow.apache.org/configuration.html#scaling-out-on-mesos-community-contributed

在这个描述的场景中,Airflow Server将通过marathon(= DC / OS服务部分)启动,这个Airflow Server会将自己注册为Mesos的调度程序,然后它就能启动常规Mesos任务。