Ubuntu 安装 NVIDIA-Docker

系统:linux

版本:ubuntu20.04(查看Ubuntu系统版本指令:lsb_release -a,如果只想查看版本号的命令:lsb_release -sr

1、Docker简介:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。NVIDIA 改进了原始的Docker,便于容器使用NVIDIA GPU。由于仿真环境的配置需要安装很多库,对于新手不太友好,因此我们提供了Docker镜像,便于开发者使用。尽管Docker理论上适配多种操作系统,但由于后续算法开发仍建议在本地进行,因此操作系统仍需使用Ubuntu。
2、NVIDIA驱动安装

nvidia-docker需要宿主机已经安装nvidia驱动,为了与镜像的驱动版本保持一致,开发者需要安装470版本,以下安装方式的前提是之前没有安装或是通过apt安装的nvidia驱动。如果之前是其他方法安装的驱动,要根据具体情况更改驱动版本。

安装 nvidia-driver-470 指令

sudo apt install nvidia-driver-470

出现上述界面则表示安装成功。

查看GPU型号指令

lspci | grep -i nvidia

查看当前NVIDIA驱动版本

sudo dpkg --list | grep nvidia-*
或者
cat /proc/driver/nvidia/version

出现没有那个文件或目录,则表示没有安装NVIDIA驱动(也有可能是需要重启电脑,因为NVIDIA驱动应该是在前面安装 nvidia-driver-470 指令的时候就安装好了的,就是sudo apt install nvidia-driver-470这个指令),重启电脑后就解决了没有那个文件或目录的问题。

3、NVIDIA-Docker安装

curl https://get.docker.com | sh   && sudo systemctl --now enable docker

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker

接着通过运行如下命令测试Docker使用安装成功

通过运行如下命令测试Docker使用安装成功

sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

出现报错: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: initialization error: nvml error: driver not loaded: unknown.(可以略过这个报错)

可以在github上 NVIDIA/nvidia-docker/issues/1648 找到答案。

是因为gpu的持久模式(nvidia-persistenced daemon)并未开启。

使用nvidia-smi指令查询显卡资源的时候出现报错NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the lastest NVIDIA driver is installed and running. (可重启电脑解决)

可能是内核版本更新的问题,导致新版本内核和原来显卡驱动不匹配。(最后发现不是内核不匹配的问题,只需重启电脑就解决了)

使用dpkg --get-selections | grep linux-image指令查看已安装内核版

uname -a 查看正在使用的内核

dpkg --get-selections | grep linux-image

uname -a

显示为5.15.0-107,不知道安装nvidia驱动时的内核版本,不知道是不是不匹配造成的,只需执行两条命令就好。sudo apt-get install dkms        查看驱动版本:  ls /usr/src | grep nvidia

sudo apt-get install dkms

ls /usr/src | grep nvidia

sudo dkms install -m nvidia -v 470.239.06(470.239.06表示的是驱动版本号)

输入sudo dkms install -m nvidia -v 470.239.06 得到Module nvidia/470.239.06 already installed on kernel 5.15.0-107-generic/x86_64   所以不是内核不匹配造成的,重启电脑就出来了。

使用nvidia-smi -a指令查询自己的 Persistence Mode 是否开启,看到Persistence Mode 为 Disabled

使用root权限执行如下命令:
nvidia-smi -pm ENABLED

再次用sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi来查看Docker是否安装成功

sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

出现这个就成功了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值