使用Marathon启动nvidia-docker容器

时间:2016-11-18 01:10:48

标签: docker mesos marathon

使用Marathon启动nvidia-docker容器的最佳方法是什么?我知道Marathon有两种方法来启动容器,基本上是在JSON中提供shell cmd作为参数,或者使用容器字段指定参数。但是,我没有找到一种方法来指定使用nvidia-docker与常规docker之外的容器,而不是JSON中的“cmd”字段。

使用cmd作为参数启动也有什么缺点,如下所示:

{
"id": "myimage",
"cmd": "nvidia-docker run -it myimage bash",
"cpus": 1,
"mem": 512.0,
"instances": 3,
}

使用“容器”字段:

{
"id": "myimage",
"cpus": 1,
"mem": 512.0,
"instances": 3,
"container": {
    "type": "DOCKER",
    "docker": {
        "image": "myimage",
        "network": "HOST"
    }
}
}

1 个答案:

答案 0 :(得分:2)

假设您正在使用nvidia-docker来利用GPU资源,您根本不需要使用nvidia-docker,因为GPU support in Mesos已经提供了所需的一切使用Mesos集装箱。您需要最新版本的Mesos(> = 1.0)和Marathon(> = 1.3以--enable_features gpu_resources开头)。

如果出于某种原因,这不适用于您的案例,您可以通过设置cmd字段直接致电nvidia-docker,就像您在第一个示例中所做的那样。虽然这可能有一些警告,因为它会直接与docker守护进程通信,可能会绕过Mesos隔离器。