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 "============================================"

相关推荐
晚安日记wanna17 小时前
批量请求失败只弹一个 Toast面试官想听五层
前端·面试·架构
大模型码小白17 小时前
告别造假数据,直接连数据库查真实时序数据喂给 TimechoAI 大模型
java·数据库·人工智能·microsoft·架构
晚安日记wanna17 小时前
大表 DDL 面试翻车现场Online DDL 为什么还会锁死业务
数据库·面试·架构
晚安日记wanna18 小时前
MySQL 主从延迟别只答并行复制
数据库·面试·架构
狼与自由18 小时前
MCP协议理解
人工智能·架构
星间都市山脉19 小时前
Android16 SystemService.onBootPhase 调用时机
android·java·linux·windows·ubuntu
天远API20 小时前
零信任架构实战:基于天远单人婚姻查询构建自动化联合贷款审计网关
java·人工智能·架构·自动化
wdfk_prog20 小时前
VMware Ubuntu 虚拟机从 124 GB 压缩到 33 GB
运维·缓存·docker·容器
余生爱静20 小时前
从零搭建 SIP 全栈通话系统:SIP 协议 + PJSIP + Asterisk + Android 实战
ubuntu·pjsip
海宇AI20 小时前
零信任架构实战:基于海宇公安二要素认证即时版构建自动化灵活用工准入网关
运维·人工智能·架构·自动化