本地安装nvidia-docker问题记录

本文记录了在Ubuntu系统上安装和使用NVIDIA Docker时遇到的错误及解决过程,包括GPU驱动问题、Deepin软件冲突、源列表错误等。通过更新、卸载、重新安装和配置相关软件,最终成功运行NVIDIA Docker并安装NVIDIA-docker2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考NVIDIA的教程.
一.

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
ERRO[0018] error waiting for container: context canceled 

这里先尝试了github issue中的解决方案1,将 sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit拆分成

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

还是没有效果,这里因为在执行sudo apt-get update时老是报deepin的错误,所以接下来尝试卸载deepin, 这里尝试了很多种方式, 在进行如下两种操作后, sudo apt-get update不在显示和wine相关的错误.
 1. 使用命令sudo apt remove deepin* 卸载掉安装的wine软件
 2. 使用命令 find / -name '*wine\*' 在磁盘中找到wine的剩余文件,然后删除.

(base) wlj@wlj-OUC:~$ sudo find / -name '*wine*'
find: ‘/run/user/1000/gvfs’: Permission denied
/etc/apt/sources.list.d/deepin-wine.i-m.dev.list.save
/etc/apt/sources.list.d/deepin-wine.i-m.dev.list
/etc/apt/preferences.d/deepin-wine.i-m.dev.pref

之后在执行 sudo apt-get update 就可以了.然后又按照上面NVIDIA的教程重新走了一遍, 进行测试就没有问题了.

sudo docker run --gpus 2 nvidia/cuda:10.0-base nvidia-smi
Wed May  4 02:11:20 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 418.87.00    Driver Version: 418.87.00    CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| 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 2070    Off  | 00000000:01:00.0 Off |                  N/A |
| 29%   61C    P0    45W / 175W |      0MiB /  7952MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce RTX 2070    Off  | 00000000:03:00.0 Off |                  N/A |
| 38%   41C    P0     1W / 175W |      0MiB /  7952MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

但是此时执行nvidia-docker仍然报错.
二.

(base) wlj@wlj-OUC:~$ nvidia-docker
nvidia-docker: command not found

然后发现上面那个链接指导并不全面, 找到了NVIDIA-docker 的官方git, 在其中一个安装指导链接, 这里我就只执行了如下三个命令就可以使用NVIDIA-docker了.
 1.

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 install -y nvidia-docker2

到此处, nvidia-docker 就可以使用了.
在这里插入图片描述 4. 当我在服务器上安装时,在第二的大问题上遇到了本地没有的错误,当我执行完二.1和 二.2的命令后,我又更新了一下,结果报错如下:

(base) ouc@ouc-Super-Server:~$ sudo apt-get update
E: Conflicting values set for option Signed-By regarding source https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64/ /: /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg != 
E: The list of sources could not be read.

这里参考这里的解决方案,删除了一些文件

(base) ouc@ouc-Super-Server:/etc/apt/sources.list.d$ ls
mysql.list                     rvm-ubuntu-smplayer-bionic.list       vscode.list
mysql.list.save                rvm-ubuntu-smplayer-bionic.list.save  vscode.list.save
nvidia-container-toolkit.list  teamviewer.list
nvidia-docker.list             teamviewer.list.save
(base) ouc@ouc-Super-Server:/etc/apt/sources.list.d$ sudo rm nvidia-*

然后我又从一开始走了一遍,到第二步的时候,我直接安装了NVIDIA-docker2,就成功了,奇奇怪怪。

(base) ouc@ouc-Super-Server:/etc/apt/sources.list.d$ sudo apt-get install -y nvidia-docker2
Reading package lists... Done
Building dependency tree       
Reading state information... Done
(Reading database ... 248522 files and directories currently installed.)
Preparing to unpack .../nvidia-docker2_2.10.0-1_all.deb ...
Unpacking nvidia-docker2 (2.10.0-1) ...
Setting up nvidia-docker2 (2.10.0-1) ...

ok,服务器上的NVIDIA-docker也安装好了。

### NVIDIA Container Toolkit 离线安装方法 对于希望在无网络连接环境中部署 GPU 加速容器应用的用户来说,离线安装 NVIDIA Container Toolkit 是一种常见需求。以下是适用于不同操作系统的具体离线安装指南。 #### Ubuntu 和 Debian 类系统 针对基于 Debian 的发行版,如 Ubuntu 20.04 LTS,在准备离线环境前需先在线获取必要的 .deb 文件集合[^3]: 1. **下载所需 deb 包** - `libnvidia-container1` 提供库支持 - `libnvidia-container-tools` 包含命令行工具 - `nvidia-docker2` 实现 Docker 集成 - `nvidia-container-runtime` 运行时组件 - `nvidia-container-toolkit` 主要工具集 这些文件可以从官方仓库或其他可信来源处获得最新版本。确保所选版本相互兼容并适合目标主机架构(通常是 amd64/x86_64)。完成收集后将其传输至待安装机器上。 2. **执行本地 dpkg 命令** ```bash sudo dpkg -i *.deb ``` 此指令会依次处理当前目录下的所有 `.deb` 文件,从而实现软件包的一键式批量安装。如果遇到依赖关系错误提示,则可能需要额外手动解决缺失项或调整顺序重试。 #### CentOS/RHEL 类系统 对于 Red Hat Enterprise Linux 及其衍生产品而言,采用 RPM 格式的二进制分发更为普遍。虽然原始文档未提及特定于 RHEL/CentOS 平台上的离线流程说明[^2],但可以参照类似原理操作——即预先准备好 yum/dnf 所需 rpm 包及其依赖链,并通过 offline-repo 工具创建自定义镜像源来辅助后续过程。 值得注意的是,无论是哪种 Linux 发行版,都建议事先查阅对应版本号下完整的变更日志与已知问题列表,以便更好地规划实施策略并规避潜在风险。例如 v1.12.0 版本提供了详细的更新记录和迁移指导[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值