如何从 docker-compose.yml 指定 nvidia 运行时?
How do I specify nvidia runtime from docker-compose.yml?
我能够运行一个tensorflow容器w/从命令行使用以下命令访问GPU
$ sudo docker run --runtime=nvidia --rm gcr.io/tensorflow/tensorflow:latest-gpu
我希望能够从 docker-compose 运行 这个容器。是否可以从 docker-compose.yml
指定 --runtime
标志?
您应该编辑 /etc/docker/daemon.json
,添加第一级密钥 "default-runtime": "nvidia"
,重新启动 docker 守护程序(例如 "sudo service docker restart"
),然后该主机上的所有容器将 运行 与 nvidia 运行时间。
有关 daemon.json
的更多信息 here
或更好:使用 systemd
并假设路径是 /usr/libexec/oci/hooks.d/nvidia
配置
mkdir -p /etc/systemd/system/docker.service.d/
cat > /etc/systemd/system/docker.service.d/nvidia-containers.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -D --add-runtime nvidia=/usr/libexec/oci/hooks.d/nvidia --default-runtime=nvidia
EOF
重启
systemctl daemon-reload
systemctl restart docker
演示
不需要指定--runtime=nvidia
,因为我们在配置步骤中设置了default-runtime=nvidia
。
docker run --rm gcr.io/tensorflow/tensorflow:latest-gpu
解决方案灵感来自我的 tutorial about KATA runtime。
目前(2018 年 8 月),Docker 的 NVIDIA 容器运行时(nvidia-docker2) supports Docker Compose。
Yes, use Compose format 2.3 and add runtime: nvidia to your GPU service. Docker Compose must be version 1.19.0 or higher.
示例docker-compose.yml
:
version: '2.3'
services:
nvsmi:
image: ubuntu:16.04
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
command: nvidia-smi
更多 example from NVIDIA blog uses Docker Compose 展示如何使用 NVIDIA 容器运行时启动多个 GPU 容器。
我能够运行一个tensorflow容器w/从命令行使用以下命令访问GPU
$ sudo docker run --runtime=nvidia --rm gcr.io/tensorflow/tensorflow:latest-gpu
我希望能够从 docker-compose 运行 这个容器。是否可以从 docker-compose.yml
指定 --runtime
标志?
您应该编辑 /etc/docker/daemon.json
,添加第一级密钥 "default-runtime": "nvidia"
,重新启动 docker 守护程序(例如 "sudo service docker restart"
),然后该主机上的所有容器将 运行 与 nvidia 运行时间。
有关 daemon.json
的更多信息 here
或更好:使用 systemd
并假设路径是 /usr/libexec/oci/hooks.d/nvidia
配置
mkdir -p /etc/systemd/system/docker.service.d/
cat > /etc/systemd/system/docker.service.d/nvidia-containers.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -D --add-runtime nvidia=/usr/libexec/oci/hooks.d/nvidia --default-runtime=nvidia
EOF
重启
systemctl daemon-reload
systemctl restart docker
演示
不需要指定--runtime=nvidia
,因为我们在配置步骤中设置了default-runtime=nvidia
。
docker run --rm gcr.io/tensorflow/tensorflow:latest-gpu
解决方案灵感来自我的 tutorial about KATA runtime。
目前(2018 年 8 月),Docker 的 NVIDIA 容器运行时(nvidia-docker2) supports Docker Compose。
Yes, use Compose format 2.3 and add runtime: nvidia to your GPU service. Docker Compose must be version 1.19.0 or higher.
示例docker-compose.yml
:
version: '2.3'
services:
nvsmi:
image: ubuntu:16.04
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
command: nvidia-smi
更多 example from NVIDIA blog uses Docker Compose 展示如何使用 NVIDIA 容器运行时启动多个 GPU 容器。