安装 docker-ce 后,我尝试安装 nvidia-docker。我按照这个:https : //github.com/NVIDIA/nvidia-docker安装 nvidia-docker。它似乎已正确安装。
我试着跑:
$ sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
docker: Error response from daemon: Unknown runtime specified nvidia.
See 'docker run --help'.
Run Code Online (Sandbox Code Playgroud)
虽然,这有效(没有 --runtime=nvidia):
$ docker container run -ti ubuntu bash
Run Code Online (Sandbox Code Playgroud)
我的系统上的一些附加信息:它是一个带有 8 个 GPU(Titan Xp)和 nvidia 驱动程序版本 387.26 的 ubuntu 服务器 16.04。我可以在主机系统上运行 nvidia-smi -l 1 并且它按预期工作。
$ dpkg -l | grep -E '(nvidia|docker)'
ii docker-ce 18.06.1~ce~3-0~ubuntu amd64 Docker: the open-source application container engine
ii libnvidia-container-tools 1.0.0-1 amd64 NVIDIA container runtime …Run Code Online (Sandbox Code Playgroud) 我想将 nvidia 运行时添加到我的 docker 中。请注意,我正在运行 Windows 11。Windows 上的 Docker Desktop v.4.24.2 集成在 WSL 2 NVIDIA 驱动程序 545.84 上
我将所有内容安装为 nvidia-container-toolkit 并在运行 ubuntu 22.04 LTS 的 wsl 中我能够运行
docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 -it --rm -v .:/app nvcr.io/nvidia/pytorch:22.07-py3
Run Code Online (Sandbox Code Playgroud)
它实际上为我的 GPU 加载了它需要的一切。我知道这一点是因为我能够在 jupyter 笔记本中执行
import torch
for i in range(torch.cuda.device_count()):
print(torch.cuda.get_device_properties(i).name)
Run Code Online (Sandbox Code Playgroud)
它显示了我的 GPU (RTX 2080 SUPER)
但如果我想使用标志 --runtime=nvidia 它说
docker:来自守护进程的错误响应:未知或无效的运行时名称:nvidia。请参阅“docker run --help”。
我想在 docker compose 中使用它:
version: '3'
services:
pytorch_container:
image: nvcr.io/nvidia/pytorch:22.07-py3
command: ["bash"]
volumes:
- .:/app
runtime: …Run Code Online (Sandbox Code Playgroud)