GPU是宿主机的资源,要在docker中使用GPU以前可能很复杂,现在NVIDIA和docker最新的解决方案变得很方便。
环境要求
docker -v
nvcc -V
docker版本至少要求应该是20以上吧?
安装密钥
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
安装 NVIDIA Container Toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
测试安装是否成功
测试镜像的版本(这里是11.6.2-base-ubuntu20.04)根据自己的情况选择
docker run --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
在docker中使用GPU
看看上面的测试就知道,docker中使用GPU只需要在运行时加上 --gpus all
参数即可。
在docker-compose中使用GPU
加入gpu资源相关配置即可,类似下面这样:
version: '3.0'
services:
service-one:
image: myimage
ports:
- "8100:8100"
deploy:
resources:
reservations:
devices:
- driver: "nvidia"
count: "all"
capabilities: ["gpu"]
volumes:
- ./data:/data
command: "echo done"