Ubuntu 22.04 离线安装NVIDIA Container Toolkit
Ubuntu 22.04 安装NVIDIA Container Toolkit
NVIDIA Container Toolkit 的官方文档:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
安装过程:
1、根据官方文档操作到第二步:
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/stable/deb/nvidia-container-toolkit.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
会报:Connection reset by peer in connection to nvidia.github.io:443 的错误,国内服务器访问不到github,后面执行apt-get update 也会报错
root@gpu-node:~# 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/stable/deb/nvidia-container-toolkit.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
curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to nvidia.github.io:443
gpg: no valid OpenPGP data found.
root@gpu-node:~# apt-get update
Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu jammy InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-security InRelease
Hit:5 https://mirrors.aliyun.com/docker-ce/linux/ubuntu jammy InRelease
Ign:6 https://nvidia.github.io/libnvidia-container/stable/deb/amd64 InRelease
Ign:7 https://nvidia.github.io/libnvidia-container/experimental/deb/amd64 InRelease
Ign:6 https://nvidia.github.io/libnvidia-container/stable/deb/amd64 InRelease
Get:7 https://nvidia.github.io/libnvidia-container/experimental/deb/amd64 InRelease [1,489 B]
Err:7 https://nvidia.github.io/libnvidia-container/experimental/deb/amd64 InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY DDCAE044F796ECB0
Get:6 https://nvidia.github.io/libnvidia-container/stable/deb/amd64 InRelease [1,477 B]
Err:6 https://nvidia.github.io/libnvidia-container/stable/deb/amd64 InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY DDCAE044F796ECB0
Reading package lists... Done
W: GPG error: https://nvidia.github.io/libnvidia-container/experimental/deb/amd64 InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY DDCAE044F796ECB0
E: The repository 'https://nvidia.github.io/libnvidia-container/experimental/deb/amd64 InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: https://nvidia.github.io/libnvidia-container/stable/deb/amd64 InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY DDCAE044F796ECB0
E: The repository 'https://nvidia.github.io/libnvidia-container/stable/deb/amd64 InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
2、更换国内镜像源:
- 清理旧配置信息:
sudo rm -f /etc/apt/sources.list.d/nvidia-*.list
sudo rm -f /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
- 使用清华源,绕过github
# 清华源提供原始 gpgkey(ASCII armor 格式)
sudo mkdir -p /usr/share/keyrings
wget -qO - https://mirrors.tuna.tsinghua.edu.cn/nvidia-container-toolkit/gpgkey |
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
发现清华源也报错,访问不到
root@gpu-node:~# wget https://mirrors.tuna.tsinghua.edu.cn/nvidia-container-toolkit/gpgkey -O - | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
--2025-12-09 11:56:18-- https://mirrors.tuna.tsinghua.edu.cn/nvidia-container-toolkit/gpgkey
Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.15.130, 2402:f000:1:400::2
Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.15.130|:443... File '/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg' exists. Overwrite? (y/N) connected.
HTTP request sent, awaiting response... 404 Not Found
2025-12-09 11:56:19 ERROR 404: Not Found.
Enter new filename: /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
File '/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg' exists. Overwrite? (y/N) y
gpg: no valid OpenPGP data found.
4.国内源返回404,也不可用
curl -I https://mirrors.tuna.tsinghua.edu.cn/nvidia-container-toolkit/ubuntu22.04/amd64/Release
root@gpu-node:~# curl -I https://mirrors.tuna.tsinghua.edu.cn/nvidia-container-toolkit/ubuntu22.04/amd64/Release
HTTP/2 404
server: nginx/1.22.1
date: Tue, 09 Dec 2025 09:37:29 GMT
content-type: text/html
content-length: 153
vary: Accept-Encoding
vary: Accept-Encoding
strict-transport-security: max-age=31536000
x-tuna-mirror-id: neomirrors
strict-transport-security: max-age=31536000
x-tuna-mirror-id: nanomirrors
-
只能从GitHub地址上下载 deb文件,然后离线装一下软件
NVIDIA Container Toolkit deb文件所在路径:https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/stable/deb/amd64/
需要下载的几个文件名称:- libnvidia-container1_1.18.1-1_amd64.deb
- libnvidia-container-tools_1.18.1-1_amd64.deb
- nvidia-container-toolkit-base_1.18.1-1_amd64.deb
- nvidia-container-toolkit_1.18.1-1_amd64.deb
文件按顺序装,前面的文件是依赖,最后是正常装上了
dpkg -i libnvidia-container1_1.18.1-1_amd64.deb
dpkg -i libnvidia-container-tools_1.18.1-1_amd64.deb
dpkg -i nvidia-container-toolkit-base_1.18.1-1_amd64.deb
dpkg -i nvidia-container-toolkit_1.18.1-1_amd64.deb
root@gpu-node:~# dpkg -i libnvidia-container1_1.18.1-1_amd64.deb
Selecting previously unselected package libnvidia-container1:amd64.
(Reading database ... 87377 files and directories currently installed.)
Preparing to unpack libnvidia-container1_1.18.1-1_amd64.deb ...
Unpacking libnvidia-container1:amd64 (1.18.1-1) ...
Setting up libnvidia-container1:amd64 (1.18.1-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.11) ...
root@gpu-node:~# dpkg -i libnvidia-container-tools_1.18.1-1_amd64.deb
Selecting previously unselected package libnvidia-container-tools.
(Reading database ... 87385 files and directories currently installed.)
Preparing to unpack libnvidia-container-tools_1.18.1-1_amd64.deb ...
Unpacking libnvidia-container-tools (1.18.1-1) ...
Setting up libnvidia-container-tools (1.18.1-1) ...
root@gpu-node:~# dpkg -i nvidia-container-toolkit-base_1.18.1-1_amd64.deb
Selecting previously unselected package nvidia-container-toolkit-base.
(Reading database ... 87395 files and directories currently installed.)
Preparing to unpack nvidia-container-toolkit-base_1.18.1-1_amd64.deb ...
Unpacking nvidia-container-toolkit-base (1.18.1-1) ...
Setting up nvidia-container-toolkit-base (1.18.1-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/nvidia-cdi-refresh.path → /etc/systemd/system/nvidia-cdi-refresh.path.
Created symlink /etc/systemd/system/multi-user.target.wants/nvidia-cdi-refresh.service → /etc/systemd/system/nvidia-cdi-refresh.service.
Regenerating NVIDIA CDI specification...
root@gpu-node:~# dpkg -i nvidia-container-toolkit_1.18.1-1_amd64.deb
(Reading database ... 87405 files and directories currently installed.)
Preparing to unpack nvidia-container-toolkit_1.18.1-1_amd64.deb ...
Unpacking nvidia-container-toolkit (1.18.1-1) over (1.18.1-1) ...
Setting up nvidia-container-toolkit (1.18.1-1) ...
root@gpu-node:~# apt install -y nvidia-container-toolkit
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
nvidia-container-toolkit is already the newest version (1.18.1-1).
0 upgraded, 0 newly installed, 0 to remove and 14 not upgraded.
root@gpu-node:~# nvidia-ctk runtime configure --runtime=docker
INFO[0000] Config file does not exist; using empty config
INFO[0000] Wrote updated config to /etc/docker/daemon.json
INFO[0000] It is recommended that docker daemon be restarted.
root@gpu-node:~# systemctl restart docker
6.修复可能缺失的系统依赖(可选)
某些基础依赖(如 libseccomp2)可能未安装,用以下命令自动修复:
sudo apt --fix-broken install -y
离线下载需要的deb文件在文章开头可以自行下载











