如果想在容器里调用宿主机的nvidia显卡加速运算,docker 19.03+版本摒弃了之前的nvidia-docker2的实现方式,docker 运行镜像时候只需在run 后加--gpus all的参数,但是在docker-compose里确没有--gpus=all或者runtime=nvidia的参数让docker调用nvidia显卡,之前还以为了nvidia-docker官方没有跟上docker进度,功能还未实现,这个困扰了很多人。在我的锲而不舍下(^_^),今天终于发现了正确的使用方法。实现分享如下。
前提:安装了docker19.03+版本和nvidia-docker(官网),物理机配置好显卡驱动(即nvidia-smi有gpu显卡信息输出)
按照如下步骤安装,就可以直接以nvidia形式运行docker镜像。
docker run -it image_name <=> docker run -it --gpus all image_name
按照如下步骤进行:
# 安装nvidia-container-runtime,默认安装位置:/usr/bin/
sudo apt-get install nvidia-container-runtime
# 修改 /etc/docker/daemon.json,配置默认nvidia运行
sudo vim /etc/docker/daemon.json
# 在daemon.json文件中添加如下内容,如下示意图
{
"default-runtime": "nvidia"
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
# 重启docker服务即可生效
Sudo systemctl daemon-reload
Sudo systemctl restart docker
结果如下图: