使用Marathon启动nvidia-docker容器

使用Marathon启动nvidia-docker容器的最佳方式是什么? 我知道Marathon有两种启动容器的方式,基本上是在JSON中提供一个shell cmd作为参数,或者使用容器字段指定参数。 然而,我还没有find一种方法来指定启动容器与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" } } } 

假设您使用nvidia-docker来利用GPU资源,则根本不需要使用nvidia-docker ,因为Mesos中的GPU支持已经提供了使用Mesos容器所需的一切。 您将需要最近版本的Mesos(> = 1.0)和Marathon(> = 1.3以--enable_features gpu_resources开始)。

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