使用nvidia-docker 或 docker --runtime=nvidia 报错: docker: Error response from daemon: OCI runtime...

使用nvidia-docker 或 docker --runtime=nvidia 报错: docker: Error response from daemon: OCI runtime create failed...


平台说明:Ubuntu16.04 + cuda9.0+cudnn7 + docker19.03.1
在使用docker 搭建cuda环境时:

#使用nvidia-docker
nvidia-docker run --rm nvidia/cuda nvidia-smi
#或者使用 docker --runtime=nvidia xx
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

报错:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused “process_linux.go:430: container init caused “process_linux.go:413: running prestart hook 1 caused \“error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility –require=cuda>=10.1 brand=tesla,driver>=384,driver<385 brand=tesla,driver>=396,driver<397 brand=tesla,driver>=410,driver<411 --pid=25969 /var/lib/docker/overlay2/9481fbe92323959e30c79c7e96ceaf310711fc445ea88cf44c26f2e52d9f642/merged]\\nnvidia-container-cli: requirement error: unsatisfied condition: brand = tesla\\n\”””: unknown.

在github上有人遇到类似的问题nvidia-docker#1012#685:
运行报错里说:…–require=cuda>=10.1 brand=tesla,driver>=384,driver<385 brand=tesla,driver>=396,driver<397 brand=tesla,driver>=410,driver<411…
这个应该是我主机的cuda版本和镜像里的cuda版本没有对应,docker里使用cuda的版本应该需要与主机的对应或者满足一定要求,而nvidia-docker run --rm nvidia/cuda nvidia-smidocker run --runtime=nvidia --rm nvidia/cuda nvidia-smi 获取的都是最新版本的 nvidia/cuda ,而我主机上是 cuda:9.0+cudnn7,达不到要求,所以有两个办法:一是按照报错的要求安装cuda>=10.1的版本和对应驱动,二是选择对应版本的镜像,由于我不想更改主机的cuda,所以我选择第二种方式。
拉取对应我主机对应cuda版本的镜像:

#使用nvidia-docker
nvidia-docker run --rm nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04 nvidia-smi
#或者使用 docker --runtime=nvidia xx
docker run --runtime=nvidia --rm nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04 nvidia-smi

然后就不报错了,输出NVIDIA-SMI信息。

注意:此方法仅仅针对报错里有:…–require=cuda>=10.1 brand=tesla,driver>=384,driver<385 brand=tesla,driver>=396,driver<397 brand=tesla,driver>=410,driver<411…, 不过可以作为docker使用cuda出错的一个参考切入点:docker的cuda要与你的host的cuda版本对应。一开始时我各种找哪里出问题,一直以为是nvidia-docker2安装有问题,有旧版本nvidia-docker或者依赖不对,弄了好多天,直到看到这两个issue才想到可能是版本问题,才解决了这个问题。

参考:
https://blog.csdn.net/qq_37674858/article/details/88552449
nvidia-docker issues #1012#685
注意驱动版本要对应:https://blog.csdn.net/renhanchi/article/details/75808029

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值