Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)

📅 发布时间:2026/7/8 20:39:41 👁️ 浏览次数:
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程含国内源适配Ubuntu下DockerNVIDIA Container Toolkit完整安装教程国内源适配前言在Linux环境下做容器化开发或GPU加速计算时Docker结合NVIDIA Container Toolkit是标配环境。本文基于Ubuntu系统全程使用国内阿里源适配避开外网访问问题从Docker卸载、安装、镜像源配置到NVIDIA Container Toolkit的安装与GPU容器验证一步一步手把手教你搭建环境适合新手从零开始操作。一、环境说明系统Ubuntu本文测试为20.04.6 LTS其他Ubuntu版本通用目标安装Docker Engine-Community最新版 NVIDIA Container Toolkit前置有NVIDIA独立显卡虚拟机/无GPU可跳过NVIDIA相关步骤二、Docker安装与配置2.1 卸载系统默认Docker可选若系统预装了低版本Docker或相关组件先执行卸载无相关组件则报错可忽略sudo apt-get remove docker docker-engine docker.io containerd runc2.2 安装Docker依赖包下载apt传输、证书、源管理等必要依赖sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release2.3 添加阿里Docker源核心国内源提速Step 1添加阿里GPG Keycurl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgStep 2添加阿里Docker APT源echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null2.4 更新源并安装Docker# 双重更新确保源生效 sudo apt update sudo apt-get update # 安装Docker核心组件 sudo apt install docker-ce docker-ce-cli containerd.io2.5 验证Docker安装状态查看Docker版本sudo docker version正常输出会包含Client和Server端信息本文测试版本为Docker Engine 27.5.0。检查Docker运行状态sudo systemctl status docker看到active (running)即代表Docker服务正常启动。2.6 配置无root权限使用Docker可选默认使用Docker需要sudo添加当前用户到Docker用户组实现免sudo操作sudo groupadd docker sudo gpasswd -a ${USER} docker sudo service docker restart注意配置后需重新登录终端权限才会生效。2.7 配置Docker国内镜像源解决拉取镜像超时国内无法直接访问Docker Hub需配置第三方镜像源编辑daemon.json文件Step 1创建/编辑配置文件sudo nano /etc/docker/daemon.jsonStep 2粘贴以下镜像源配置多源备选稳定性更高说明若/etc/docker/daemon.json中已存在内容当前已有nvidia运行时配置请将以下registry-mirrors节点添加到原有JSON对象中与原有runtimes节点同级不要覆盖原有内容。{ runtimes: { nvidia: { args: [], path: nvidia-container-runtime } } }当前daemon.json已有内容修改后完整配置合并后Step 3重载配置并重启Docker操作提示打开daemon.json后在runtimes节点末尾添加英文逗号,再粘贴registry-mirrors相关配置确保JSON格式正确无语法错误。{ runtimes: { nvidia: { args: [], path: nvidia-container-runtime } }, registry-mirrors: [ https://dockerproxy.com, https://docker.m.daocloud.io, https://cr.console.aliyun.com, https://ccr.ccs.tencentyun.com, https://hub-mirror.c.163.com, https://mirror.baidubce.com, https://docker.nju.edu.cn, https://docker.mirrors.sjtug.sjtu.edu.cn, https://registry.docker-cn.com ] }sudo systemctl daemon-reload sudo systemctl restart dockerStep 4验证镜像源配置sudo docker info在输出中看到Registry Mirrors后列出上述配置的源地址即代表配置成功。2.8 最终验证Docker环境拉取hello-world镜像测试无超时且正常输出即代表Docker环境完全可用docker run hello-world看到Hello from Docker!字样说明Docker安装、配置全部完成。三、NVIDIA Container Toolkit安装GPU环境专属NVIDIA Container Toolkit是实现Docker容器调用GPU、支持GPU加速的核心工具无GPU/虚拟机环境可直接跳过。3.1 添加NVIDIA官方源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.list3.2 更新源并安装Toolkitsudo apt-get update sudo apt-get install -y nvidia-container-toolkit注意无外网代理时下载耗时稍久耐心等待即可。3.3 配置Docker的NVIDIA运行时修改Docker配置让Docker支持NVIDIA GPU运行时仅需两行命令# 配置nvidia运行时 sudo nvidia-ctk runtime configure --runtimedocker # 重启Docker使配置生效 sudo systemctl restart docker3.4 一键验证NVIDIA驱动容器工具包状态为了快速确认NVIDIA驱动和Container Toolkit是否配置成功可执行以下一键检查命令# 同时验证NVIDIA驱动和容器工具包状态 nvidia-smi /dev/null 21 echo NVIDIA driver OK || (echo NVIDIA driver issue; exit 1) sudo docker info 2/dev/null | grep -q Runtime.*nvidia echo NVIDIA Container Toolkit OK || (echo NVIDIA Container Toolkit not configured; exit 1)若输出NVIDIA driver OKNVIDIA Container Toolkit OK说明驱动和工具包均配置正常若输出NVIDIA driver issue需先排查NVIDIA显卡驱动安装问题若输出NVIDIA Container Toolkit not configured需重新执行3.1-3.3步骤配置Toolkit。3.5 验证GPU容器环境拉取ubuntu镜像并运行nvidia-smi命令验证容器是否能正常调用GPUsudo docker run --rm --runtimenvidia --gpus all ubuntu nvidia-smi正常输出会包含NVIDIA显卡型号、驱动版本、CUDA版本等信息例如本文测试的RTX 3060、Driver 560.94、CUDA 12.6以下是实际验证成功的完整终端输出多RTX 4080显卡场景供参考GPU容器验证成功完整输出# 执行命令 sudo docker run --rm --runtimenvidia --gpus all ubuntu nvidia-smi # 下面输出的是日志 Unable to find image ubuntu:latest locally latest: Pulling from library/ubuntu a3629ac5b9f4: Pull complete 1baf05536e37: Download complete Digest: sha256:cd1dba651b3080c3686ecf4e3c4220f026b521fb76978881737d24f200828b2b Status: Downloaded newer image for ubuntu:latest Sat Feb 7 03:25:51 2026 ----------------------------------------------------------------------------------------- | NVIDIA-SMI 570.211.01 Driver Version: 570.211.01 CUDA Version: 12.8 | |--------------------------------------------------------------------------------------- | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | || | 0 NVIDIA GeForce RTX 4080 ... Off | 00000000:04:00.0 Off | N/A | | 0% 43C P8 4W / 320W | 1MiB / 32760MiB | 0% Default | | | | N/A | --------------------------------------------------------------------------------------- | 1 NVIDIA GeForce RTX 4080 ... Off | 00000000:06:00.0 Off | N/A | | 0% 45C P8 16W / 320W | 1MiB / 32760MiB | 0% Default | | | | N/A | --------------------------------------------------------------------------------------- | 2 NVIDIA GeForce RTX 4080 ... Off | 00000000:0C:00.0 Off | N/A | | 0% 53C P8 10W / 320W | 1MiB / 32760MiB | 0% Default | | | | N/A | --------------------------------------------------------------------------------------- | 3 NVIDIA GeForce RTX 4080 ... Off | 00000000:0E:00.0 Off | N/A | | 0% 51C P8 10W / 320W | 1MiB / 32760MiB | 0% Default | | | | N/A | --------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------- | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | || | No running processes found | -----------------------------------------------------------------------------------------输出说明出现上述内容说明1. 成功拉取ubuntu镜像2. Docker容器可正常调用所有NVIDIA GPU此处为4块RTX 40803. NVIDIA驱动570.211.01和CUDA12.8运行正常4. NVIDIA Container Toolkit安装配置完全成功。四、常见问题解决拉取镜像超时检查daemon.json镜像源配置是否正确重启Docker后重新测试无root权限执行docker报错重新执行用户组配置命令并重登终端nvidia-smi在容器中执行失败确认主机有NVIDIA显卡且安装了官方驱动虚拟机需开启GPU直通一般不支持一键检查命令提示驱动异常先执行nvidia-smi手动查看驱动状态重新安装NVIDIA官方驱动后再测试一键检查命令提示Toolkit未配置检查NVIDIA Container Toolkit安装是否成功重新执行sudo nvidia-ctk runtime configure --runtimedocker并重启Docker。五、总结本文基于Ubuntu系统完成了Docker的完整安装国内源适配无root配置以及NVIDIA Container Toolkit的安装GPU容器验证一键检查命令可快速定位驱动和工具包的配置问题所有步骤均经过实际测试。配置完成后即可在Docker中实现常规容器化开发也能基于GPU容器进行深度学习、高性能计算等GPU加速场景的开发。如果本文对你有帮助欢迎点赞收藏有问题可在评论区留言交流