2016-11-18 125 views
0

使用Marathon启动nvidia-docker容器的最佳方式是什么?我知道马拉松有两种启动容器的方法,它们基本上是在JSON中提供shell cmd作为参数,或者通过使用容器字段指定参数。然而,我还没有找到一种方法来指定启动容器与nvidia-docker与除JSON中的“cmd”字段以外的常规泊坞窗。使用Marathon启动nvidia-docker容器

还有哪些缺点使用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" 
    } 
} 
} 

回答

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隔离器。

+0

句子“假设您使用nvidia-docker来利用GPU资源,根本不需要使用nvidia-docker”有点令人困惑。我设法得到了gpu支持与mesos容器一起工作,并启用了gpu_resources标志。我确实安装了nvidia-docker软件包,但没有设置任何docker标志或明确地调用nvidia-docker。我甚至需要安装这个软件包吗?谢谢。 – MarkNS

+0

不,你不需要安装这个软件包,唯一的依赖是[Nvidia内核驱动](http://mesos.apache.org/documentation/latest/gpu-support/#external-dependencies),尽管它也是安装CUDA工具包是有意义的。 – nfnt

相关问题