Ubuntu21.04无法安装nvidia-docker

这篇博客介绍了当遇到NVIDIA-docker在Ubuntu 21.04上不被支持的错误时的解决方法。通过添加旧版本的存储库到sources.list.d文件,然后更新并安装NVIDIA-docker2,最终成功运行带有NVIDIA-CUDA的容器。此解决方案适用于那些依赖NVIDIA-docker的开发者。

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

原因:目前还没有nvidia-docker版本支持ubuntu21.04
报错:Unsupported distribution!
可查看支持的版本:https://nvidia.github.io/nvidia-docker/

解决方法:
添加存储库:/etc/apt/sources.list.d/nvidia-docker.list

vi /etc/apt/sources.list.d/nvidia-docker.list

把添加以下内容:
deb https://nvidia.github.io/libnvidia-container/ubuntu18.04/amd64 /
deb https://nvidia.github.io/nvidia-container-runtime/ubuntu18.04/amd64 /
deb https://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64 /

#更新源

sudo apt-get update

#安装

sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

#验证

docker run --runtime=nvidia --rm nvidia/cuda:11.0-base nvidia-smi#注意选择自己的cuda版本

ps:后续如果有nvidia-docker支持ubuntu21.04的版本,请按官方操作

迁移密钥到新位置 apt-key export KEYID | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/nvidia.gpg 请根据以下密钥ID 生成 迁移密钥到新位置的指令 apt-key list Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). /etc/apt/trusted.gpg -------------------- pub rsa4096 2019-05-30 [SC] [有效至:2030-06-01] C1CF 6E31 E6BA DE88 68B1 72B4 F42E D6FB AB17 C654 uid [ 未知 ] Open Robotics <info@osrfoundation.org> pub rsa4096 2017-09-28 [SCE] C95B 321B 61E8 8C18 09C4 F759 DDCA E044 F796 ECB0 uid [ 未知 ] NVIDIA CORPORATION (Open Source Projects) <cudatools@nvidia.com> /etc/apt/trusted.gpg.d/google-chrome.gpg ---------------------------------------- pub rsa4096 2016-04-12 [SC] EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796 uid [ 未知 ] Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com> sub rsa4096 2023-02-15 [S] [有效至:2026-02-14] sub rsa4096 2024-01-30 [S] [有效至:2027-01-29] sub rsa4096 2025-01-07 [S] [有效至:2028-01-07] /etc/apt/trusted.gpg.d/ros.gpg ------------------------------ pub rsa4096 2019-05-30 [SC] [有效至:2030-06-01] C1CF 6E31 E6BA DE88 68B1 72B4 F42E D6FB AB17 C654 uid [ 未知 ] Open Robotics <info@osrfoundation.org> /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg ------------------------------------------------------ pub rsa4096 2012-05-11 [SC] 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092 uid [ 未知 ] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com> /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg ------------------------------------------------------ pub rsa4096 2018-09-17 [SC] F6EC B376 2474 EDA9 D21B 7022 8719 20D1 991B C93C uid [ 未知 ] Ubuntu Archive Automatic Signing Key (2018) <ftpmaster@ubuntu.com> /etc/apt/trusted.gpg.d/ubuntu-pro-esm-apps.gpg ---------------------------------------------- pub rsa4096 2019-11-21 [SC] E8A4 43CE 3581 13D1 87BE E0E6 AB01 A101 DB53 907B uid [ 未知 ] Ubuntu Apps Automatic Signing Key <esm@canonical.com> sub rsa4096 2019-11-21 [E] /etc/apt/trusted.gpg.d/ubuntu-pro-esm-infra.gpg ----------------------------------------------- pub rsa4096 2019-04-17 [SC] 56F7 650A 24C9 E9EC F87C 4D8D 4067 E403 13CB 4B13 uid [ 未知 ] Ubuntu Extended Security Maintenance Automatic Signing Key v2 <esm@canonical.com> sub rsa4096 2019-04-17 [E]
最新发布
07-20
<think>我们已知用户想要迁移NVIDIA的APT密钥到新的信任密钥环文件中。根据用户提供的`apt-key list`输出,NVIDIA的密钥信息如下: ``` pub rsa4096 2017-09-28 [SCE] C95B 321B 61E8 8C18 09C4 F759 DDCA E044 F796 ECB0 uid [ 未知 ] NVIDIA CORPORATION (Open Source Projects) <cudatools@nvidia.com> ``` 迁移步骤: 1. **识别密钥ID**: 从输出中提取NVIDIA密钥的完整指纹(注意:`apt-key export`命令需要密钥ID的后8位)。 完整指纹:`C95B 321B 61E8 8C18 09C4 F759 DDCA E044 F796 ECB0` 我们取最后8个字节(忽略空格):`F796 ECB0`(注意:实际使用时去掉空格,即`F796ECB0`)。 2. **导出密钥到新文件**: 使用`apt-key export`命令导出密钥,并通过`gpg --dearmor`转换为适合APT新格式的二进制文件: ```bash sudo apt-key export F796ECB0 | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/nvidia.gpg ``` 3. **设置文件权限**(可选但推荐): ```bash sudo chmod 644 /etc/apt/trusted.gpg.d/nvidia.gpg ``` 4. **从旧密钥环中删除密钥**(避免重复): ```bash sudo apt-key del F796ECB0 ``` 5. **验证迁移结果**: - 运行`sudo apt update`检查是否还有关于NVIDIA仓库的弃用警告。 - 检查新文件是否存在:`ls -l /etc/apt/trusted.gpg.d/nvidia.gpg`。 ### 注意事项: - 如果迁移后出现`NO_PUBKEY`错误,请检查密钥ID是否正确,并确保新文件路径正确。 - 某些系统(如Ubuntu 24.04)可能要求直接在`sources.list`中指定密钥路径(如引用[2]所示),但此迁移方法适用于大多数情况。 ### 完整命令示例: ```bash # 导出NVIDIA密钥并转换格式 sudo apt-key export F796ECB0 | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/nvidia.gpg # 删除旧密钥 sudo apt-key del F796ECB0 # 更新APT sudo apt update ``` ### 引用说明: - 导出密钥的方法参考了引用[1]中处理Docker和Kubernetes密钥的方式[^1]。 - 权限设置和更新步骤参考了引用[2]中关于APT源配置的实践[^2]。 §§相关问题§§ 1. 如何验证迁移后的APT密钥是否生效? 2. 如果迁移后出现 `NO_PUBKEY` 错误应如何解决? 3.Ubuntu 24.04 中管理APT密钥的最佳实践是什么?</think>### 迁移 NVIDIA APT 密钥到新密钥环的完整步骤 根据您的需求,以下是迁移 NVIDIA APT 密钥到新密钥环的详细操作流程: #### 1. 识别 NVIDIA 密钥 ID ```bash sudo apt-key list | grep -A1 "NVIDIA CORPORATION" ``` 输出示例: ``` pub rsa4096 2017-09-28 [SCE] C95B 321B 61E8 8C18 09C4 F759 DDCA E044 F796 ECB0 ``` **密钥ID后8位**:`F796 ECB0`(取最后8个字符) #### 2. 导出密钥到新位置 ```bash sudo apt-key export F796ECB0 | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/nvidia.gpg ``` 关键参数说明: - `F796ECB0`:NVIDIA密钥ID的后8位 - `--dearmor`:转换密钥为二进制格式(必需步骤) - `nvidia.gpg`:自定义文件名(建议保留仓库名) #### 3. 设置正确权限 ```bash sudo chmod 644 /etc/apt/trusted.gpg.d/nvidia.gpg ``` #### 4. 从旧密钥环中删除原密钥 ```bash sudo apt-key del F796ECB0 ``` #### 5. 更新 APT 源引用(关键步骤) 编辑 NVIDIA 的源配置文件: ```bash sudo nano /etc/apt/sources.list.d/nvidia.list ``` 修改为以下格式(添加`signed-by`参数): ```bash deb [signed-by=/etc/apt/trusted.gpg.d/nvidia.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ / ``` #### 6. 验证迁移结果 ```bash sudo apt update ``` 成功标志: - 不再出现`密钥存储在过时的 trusted.gpg 密钥环中`警告 - NVIDIA 仓库可正常更新 ### 迁移原理说明 | **步骤** | **作用** | **必要性** | |----------|----------|------------| | `gpg --dearmor` | 转换密钥为APT可识别的二进制格式 | 必需,否则密钥无效[^2] | | `signed-by`参数 | 显式指定密钥路径 | 避免APT使用旧密钥环[^2] | | 644权限 | 确保APT进程可读取密钥 | 推荐,避免权限问题 | | 删除旧密钥 | 防止密钥冲突 | 可选但推荐 | ### 常见问题解决 **问题1:迁移后出现`NO_PUBKEY`错误** 解决方案: ```bash # 重新导出密钥并验证格式 sudo gpg --list-packets /etc/apt/trusted.gpg.d/nvidia.gpg # 应显示"keyid: F796ECB0" ``` **问题2:更新后仍有警告** 检查是否有重复源: ```bash grep -r "nvidia" /etc/apt/sources.list /etc/apt/sources.list.d/ ``` 删除重复文件(参考引用[2]): ```bash sudo rm /etc/apt/sources.list.d/archive_uri-https_developer_download_nvidia_*.list ``` > **迁移提示**:对每个仓库密钥重复此过程(如ROS、Google Chrome等),确保所有密钥都已迁移到`trusted.gpg.d/`目录[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值