如何从docker-compose.yml中指定nvidia运行时?

如何从docker-compose.yml中指定nvidia运行时?,docker,tensorflow,docker-compose,tensorflow-gpu,nvidia-docker,Docker,Tensorflow,Docker Compose,Tensorflow Gpu,Nvidia Docker,我能够运行tensorflow容器,通过以下命令从命令行访问GPU $sudo docker run--runtime=nvidia--rm gcr.io/tensorflow/tensorflow:最新的gpu 我希望能够从docker compose运行此容器。是否可以从docker compose.yml中指定--runtime标志?您应该编辑/etc/docker/daemon.json,添加第一级键“默认运行时”:“nvidia”,重新启动docker守护程序(例如“sudo serv

我能够运行tensorflow容器,通过以下命令从命令行访问GPU

$sudo docker run--runtime=nvidia--rm gcr.io/tensorflow/tensorflow:最新的gpu


我希望能够从docker compose运行此容器。是否可以从
docker compose.yml
中指定
--runtime
标志?

您应该编辑
/etc/docker/daemon.json
,添加第一级键
“默认运行时”:“nvidia”
,重新启动docker守护程序(例如
“sudo service docker restart”
)然后该主机上的所有容器都将使用nvidia运行时运行


更多关于
daemon.json

或更好的信息:使用
systemd
并假设路径为
/usr/libexec/oci/hooks.d/nvidia

配置 演示 不需要指定
--runtime=nvidia
,因为我们在配置步骤中设置了
默认运行时=nvidia

docker run --rm gcr.io/tensorflow/tensorflow:latest-gpu

该解决方案的灵感来源于我的。

目前(2018年8月),NVIDIA容器运行时Docker()

可以,使用Compose format 2.3并将runtime:nvidia添加到GPU服务中。Docker Compose必须为1.19.0或更高版本

示例
docker compose.yml

version: '2.3'

services:
  nvsmi:
    image: ubuntu:16.04
    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
    command: nvidia-smi

<>更多的是如何显示英伟达容器运行时的多个GPU容器。< /P>此选项仅适用于DOCKER撰写V2。有关更多信息,请查看此处相应的pull请求此选项更为优雅,因为它允许使用docker composehm更好地打包不同的容器在一个docker compose文件中可以有不同的运行时吗?
docker run --rm gcr.io/tensorflow/tensorflow:latest-gpu
version: '2.3'

services:
  nvsmi:
    image: ubuntu:16.04
    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
    command: nvidia-smi