使用Marathon启动nvidia-docker容器的最佳方法是什么?我知道Marathon有两种启动容器的方法,基本上是提供一个shell cmd作为JSON中的参数,或者通过使用container字段指定参数。但是,除了JSON中的“cmd”字段外,我没有找到一种方法来使用nvidia-docker与常规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"
}
}
}
最佳答案
假设您使用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隔离器。
关于docker - 使用Marathon启动nvidia-docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40667822/