安装nvidia-docker遇到的小麻烦

我是ubuntu 20.04,直接按照网上的教程,失败,很郁闷,还好,最后解决了,但是在这过程中,发现一个问题:最初遇到问题,然后百度,百度上找到的教程解决不了,然后才开始思考教程中每一步的含义,最后才开始想有没有办法曲线救国的路线解决这些问题。网上教程很多,我就直接拿他们的教程,然后提供我的解决方案。

首先,安装docker-ce,这一步我没有遇到问题,所以直接借用他人的命令:

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

#启动docker
$ sudo systemctl enable docker
$ sudo systemctl start docker

如果使用以上命令,没有成功,大家自行再找教程。

好了,接下来,才是重点了,我们开始试图安装nvidia-docker,首先,加源:


curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

理想很美好,但是很可惜,在我执行:

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

这一步直接报错,他提示我gpg找不到

gpg: 找不到有效的 OpenPGP 数据。

你如果也遇到这种报错,不要往后面尝试了,行不通的。我们要首先解决这个报错。
那么,这个报错咋解决呢,我也是借鉴的其他人类似的解决方法,我们直接打开:

https://nvidia.github.io/nvidia-docker/gpgkey

当这个网站打开后,他会自动提示你下载一个文件,将这个文件下载后放到你想放到的位置,然后执行:

sudo apt-key add xxxxx  #这里xxx指的是你上面下载的文件的目录

如果顺利,执行上面命令后会返回ok,接下来,我们可以执行下面两行了:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update 

执行这两行之后,可能不会报错,但是当执行apt-get update这行命令之后,你会发现https://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64 这种网站并没有更新到软件源里面,怎么会造成这种情况呢?

这时候,我们打开/etc/apt/sources.list.d/nvidia-docker.list这个文件,我们会发现这个文件里面是空的,这就是问题所在,tee这个命令没有把我们想要的东西写到文件里面。然后我百度了以下distribution=$(. /etc/os-release;echo I D ID IDVERSION_ID)命令的含义,又看了以下别人类似问题的解决方案,于是,我把https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list 改为https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list,直接打开这个网站,复制网站上的内容到nvidia-docker.list这个文件,然后再执行apt-get update这个命令,ok,新网站加进去了。

然后,我们执行

sudo apt-get install -y nvidia-container-toolkit

我当时执行的是下面这个:

sudo apt-get install -y nvidia-docker2

但是最后好像还是安装的nvidia-container-toolkit,所以你们直接执行上面那个命令吧。

如果顺利,你就安装好了,但是我不顺利,安装过程,提示我

错误:1 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64  libnvidia-container1 1.3.0-1
  Could not handshake: Error in the pull function. [IP: 185.199.108.153 443]
E: 无法下载 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64/./libnvidia-container1_1.3.0-1_amd64.deb  Could not handshake: Error in the pull function. [IP: 185.199.108.153 443]
E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?

我就直接将上面报错的网站尝试性的打开,打开后就提示我下载,是个deb包,我下载后安装,安装后再执行

sudo apt-get install -y nvidia-docker2

终于没报错,搞定了。

最后,重启docker,然后pull下一个镜像测试,命令如下:

sudo systemctl restart docker
sudo docker run --gpus all nvidia/cuda:10.0-base nvidia-smi

当镜像pull下来之后,输出:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2060    Off  | 00000000:26:00.0  On |                  N/A |
|  0%   39C    P8    13W / 160W |    526MiB /  5926MiB |      3%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

搞定! 因为过程挺艰难,故写下来,以免下次还遇到这问题。

2020.11.18

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值