docker run带 --gpus all 参数报错:“Auto-detected mode as ‘legacy‘ nvidia-container-cli: mount error”

启动“docker run --gpus all ...”时报错:

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'
nvidia-container-cli: mount error: file creation failed: /var/lib/docker/overlay2/1c530a4ee5d0941a9cf96799547e522a8629fe3def7d05d8024faf94684621af/merged/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1: file exists: unknown.

报错原因

该镜像是在Ubuntu环境下创建的,而在WSL下使用nvidia-docker启动该镜像时会报错。

解决方案

1. 使用docker而不是nvidia-docker启动原始镜像下的容器(去掉--gpus all)

docker run -it --name=my-container --rm my-image:1.0

2、在该容器中删除 /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 和文件 /usr/lib/x86_64-linux-gnu/libcuda.so.1

rm /usr/lib/x86_64-linux-gnu/libnvidia-*
rm /usr/lib/x86_64-linux-gnu/libcuda.so*

3、新开一个终端,把此时的容器打包为镜像

docker commit my-container my-image:1.1

4、使用nvidia-docker启动上一步打包的镜像,变为新的带有GPU的容器

docker run --gpus all -it --name=my-container --rm my-image:1.1

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值