使用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"
}
}
}
答案 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隔离器。