ubuntu 系统x86 架构安装docker,可以使用本地显卡

========================================

Docker + NVIDIA GPU 安装总结

========================================

日期: 2026-06-01

系统: Ubuntu 24.04 LTS (Noble)

GPU: NVIDIA GeForce RTX 5060

========================================

一、已安装组件


• Docker Engine v29.4.3 (清华镜像源安装)

• NVIDIA Container Toolkit v1.19.1 (CUDA 源安装)

• NVIDIA Driver v580.126.09 (系统预装)

• CUDA v13.0 (系统预装)

二、配置说明


• Docker 已配置 NVIDIA runtime,支持 --gpus all 参数

• CDI (Container Device Interface) 已注册 GPU

• Docker 组已添加用户,退出重新登录后生效

三、常用命令


  1. 验证 GPU 访问:

docker run --rm --gpus all nvcr.io/nvidia/cuda:12.8.0-base-ubuntu24.04 nvidia-smi

  1. 查看 Docker 版本:

docker version

  1. 查看 GPU 状态:

nvidia-smi

  1. 运行 GPU 容器并进入交互模式:

docker run -it --rm --gpus all nvcr.io/nvidia/cuda:12.8.0-base-ubuntu24.04 bash

  1. 运行 AI/ML 容器 (PyTorch):

docker run -it --rm --gpus all nvcr.io/nvidia/pytorch:24.12-py3 bash

四、注意事项


• 首次使用 docker 命令如提示权限不足,请退出当前终端重新登录

• 因网络限制,Docker Hub 不可访问,请使用 nvcr.io 拉取 NVIDIA 镜像

• 其他 Docker 镜像可尝试使用 DaoCloud 等国内代理

五、验证记录


容器内 nvidia-smi 输出正常, GPU 已识别

设备: NVIDIA GeForce RTX 5060 (8151MiB)

驱动: 580.126.09 / CUDA: 13.0

六、安装脚本

#!/bin/bash

set -euo pipefail

UBUNTU_CODENAME=$(lsb_release -cs)

ARCH=$(dpkg --print-architecture)

echo "============================================"

echo " Docker + NVIDIA GPU 一键安装脚本"

echo " 适用: Ubuntu x86_64, 需已安装 NVIDIA 驱动"

echo "============================================"

if "$(id -u)" -ne 0 ; then

echo "请使用 sudo 运行此脚本"

exit 1

fi

1. 卸载旧版

echo ">>> 1/8 卸载旧版 Docker..."

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do

apt-get remove -y $pkg 2>/dev/null || true

done

2. 安装依赖

echo ">>> 2/8 安装依赖..."

apt-get update

apt-get install -y ca-certificates curl gpg

3. 添加 Docker 源(默认官方源,可改为 TUNA 等国内镜像)

国内镜像: https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu

echo ">>> 3/8 添加 Docker 源..."

install -m 0755 -d /etc/apt/keyrings

curl -4 -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

chmod a+r /etc/apt/keyrings/docker.asc

echo "deb arch=$ARCH signed-by=/etc/apt/keyrings/docker.asc https://download.docker.com/linux/ubuntu $UBUNTU_CODENAME stable" \

> /etc/apt/sources.list.d/docker.list

4. 安装 Docker

echo ">>> 4/8 安装 Docker Engine..."

apt-get update

apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5. 用户加入 docker 组

echo ">>> 5/8 添加用户到 docker 组..."

usermod -aG docker "{SUDO_USER:-USER}"

6. 启动 Docker

echo ">>> 6/8 启动 Docker..."

systemctl enable docker

systemctl start docker

7. 安装 NVIDIA Container Toolkit(使用 CUDA 源,-4 强制 IPv4)

echo ">>> 7/8 安装 NVIDIA Container Toolkit..."

apt-get install -y libnvidia-container1 libnvidia-container-tools nvidia-container-toolkit 2>/dev/null || {

如果 apt 源没有,直接从 NVIDIA CUDA 仓库下载 deb 安装

BASE_URL="https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64"

PKGS=(

"libnvidia-container1_1.19.1-1_amd64.deb"

"libnvidia-container-tools_1.19.1-1_amd64.deb"

"nvidia-container-toolkit-base_1.19.1-1_amd64.deb"

"nvidia-container-toolkit_1.19.1-1_amd64.deb"

)

TMP_DIR=$(mktemp -d)

cd "$TMP_DIR"

for pkg in "${PKGS@}"; do

echo " 下载 $pkg ..."

curl -4 -fsSL --connect-timeout 15 --max-time 120 "BASE_URL/pkg" -o "$pkg"

done

dpkg -i *.deb

rm -rf "$TMP_DIR"

}

8. 配置 Docker 使用 NVIDIA runtime

echo ">>> 8/8 配置 NVIDIA runtime..."

nvidia-ctk runtime configure --runtime=docker

systemctl restart docker

echo ""

echo "============================================"

echo " 安装完成!"

echo ""

echo " 1. 退出当前终端重新登录(或执行 newgrp docker)"

echo " 使 docker 组权限生效"

echo ""

echo " 2. 验证 GPU 访问:"

echo " docker run --rm --gpus all nvidia/cuda:12.8.0-base-ubuntu24.04 nvidia-smi"

echo ""

echo " 3. 如果 Docker Hub 被墙,改用 nvcr.io 镜像:"

echo " docker run --rm --gpus all nvcr.io/nvidia/cuda:12.8.0-base-ubuntu24.04 nvidia-smi"

echo ""

echo " 4. 配置 Docker Hub 镜像加速(可选):"

echo ' echo "{\"registry-mirrors\":\\"https://docker.m.daocloud.io\\"}" \'

echo " | sudo tee /etc/docker/daemon.json"

echo " sudo systemctl restart docker"

echo "============================================"

相关推荐
2601_9619460823 分钟前
AI API 网关实战:从单 Key 管理到企业级多租户架构
大数据·人工智能·金融·架构·api·个人开发
XUHUOJUN2 小时前
Windows 2025架构深度分析之Stretch Cluster 延迟工程现实
windows·microsoft·架构·azure local
Web极客码3 小时前
突破并发瓶颈:云端高性能架构如何赋能海外 AI Agent 矩阵的高效产出
服务器·人工智能·架构
小兔崽子去哪了3 小时前
Docker 删除镜像后磁盘空间没有释放?
后端·docker·容器
laoli_coding4 小时前
系统部署之框架选型方案
微服务·云原生·架构
掘金_答案4 小时前
上线那天,一个 ConcurrentHashMap 差点送走我的 AI 客服——3 天排查 JVM 血泪史
java·后端·架构
秦任之5 小时前
Gliding Horse 整体架构拼图:当 AI Agent 有了自己的操作系统
人工智能·架构
Zhu7585 小时前
在Docker环境部署ApacheGuacamole,对接PG数据库
数据库·docker·容器
微三云 - 廖会灵 (私域系统开发)5 小时前
电商推荐系统从0到1:协同过滤+深度学习双塔模型的架构演进与实时排序实践
人工智能·深度学习·架构
少陽君5 小时前
Docker 部署 Loki + Promtail + Grafana 日志监控栈
docker·容器·grafana