当前位置: 首页 > news >正文

安装docker和显卡支持

下载:https://github.com/NVIDIA/libnvidia-container/blob/gh-pages/stable/deb/amd64/nvidia-container-toolkit_1.17.0-1_amd64.deb

在 Ubuntu 22.04 上安装 Docker Engine 的标准方法是使用 Docker 的官方 `apt` 仓库。这种方式能确保你获得最新且最安全的版本,也方便后续的升级维护。

以下是完整的安装步骤,请在你的终端中逐条执行。

### 📝 第一步:准备工作

在安装新版本前,建议先移除系统中可能存在的旧版 Docker 相关包。

1. **更新软件包列表**:
```bash
sudo apt update
```

2. **安装必要的依赖**:
这些软件包允许 `apt` 通过 HTTPS 使用仓库。
```bash
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
```

3. **卸载可能冲突的旧包**:
运行以下命令,移除旧版本的 Docker 或其他冲突的容器运行时。
```bash
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
```
> `apt-get` 可能会提示其中某些软件包未安装,这是正常的。

### 🔑 第二步:添加 Docker 官方仓库

这一步会为系统添加 Docker 的官方 GPG 密钥和软件源。

1. **添加 Docker 的官方 GPG 密钥**:
```bash
# 创建存放密钥的目录(如果不存在)
sudo install -m 0755 -d /etc/apt/keyrings

# 下载并安装 GPG 密钥
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
```

2. **添加 Docker 仓库到 APT 源**:
这个命令会自动检测你的 Ubuntu 版本(Jammy 22.04)并添加对应的仓库。

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$UBUNTU_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

```bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

3. **更新软件包索引**:
更新 `apt` 软件包列表,使其包含新添加的 Docker 仓库中的软件包。
```bash
sudo apt update
```
> **注意**:如果你使用的是国内服务器,可能会遇到连接官方仓库速度慢的问题。可以考虑将 `https://download.docker.com/linux/ubuntu` 替换为国内镜像源(如阿里云 `http://mirrors.aliyun.com/docker-ce/linux/ubuntu`)。

### 🚀 第三步:安装 Docker Engine

现在可以正式安装 Docker 及其核心组件了。

1. **安装最新版本的 Docker 及相关插件**:
这条命令会安装 Docker Engine、命令行工具、容器运行时以及构建和编排插件。
```bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
```

2. **验证安装是否成功**:
运行 `hello-world` 镜像。如果安装正确,你会看到一条欢迎消息,并显示 "Hello from Docker!"。
```bash
sudo docker run hello-world
```

3. **查看 Docker 版本**:
安装完成后,可以查看版本信息来确认。
```bash
docker --version
```

### ⚙️ 第四步:后续配置(重要)

为了避免每次使用 Docker 命令时都要输入 `sudo`,可以将当前用户添加到 `docker` 用户组。

1. **创建 `docker` 组**(通常安装时会自动创建,但执行一下无妨):
```bash
sudo groupadd docker
```

2. **将你的用户添加到 `docker` 组**:
将 `$USER` 替换成你的用户名,或者直接使用下面的命令。

sudo usermod -aG docker $li
```bash
sudo usermod -aG docker $USER
```

3. **生效组更改**:
你可以**注销并重新登录**,或者运行以下命令使更改立即生效:
```bash
newgrp docker
```

4. **测试是否无需 `sudo` 即可运行**:
```bash
docker run hello-world
```

### 💡 可选:安装特定版本

如果你想安装特定版本的 Docker,而不是最新版,可以按以下步骤操作:

1. **列出仓库中所有可用版本**:
```bash
apt-cache madison docker-ce
```
输出示例:
```
docker-ce | 5:28.0.4-1~ubuntu.22.04~jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
...
```

2. **安装指定版本**:
将 `VERSION_STRING` 替换为你从上一步结果中看到的版本字符串。
```bash
VERSION_STRING=5:28.0.4-1~ubuntu.22.04~jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
```

至此,你已经成功在 Ubuntu 22.04 上安装了 Docker Engine。接下来,就可以开始拉取镜像、运行容器了。

在 Ubuntu 22.04 上安装 NVIDIA Container Toolkit 最标准的方法是使用 NVIDIA 官方提供的 APT 仓库。

请根据下面的步骤,在你的终端中逐条执行。

### 📋 第一步:准备工作

在开始安装之前,请确保你的系统已经满足以下两个必要条件。

1. **检查 NVIDIA 驱动**
运行以下命令,确认驱动已正确安装。你应该能看到类似下图的 GPU 信息列表。
```bash
nvidia-smi
```
> **如果提示 `command not found`**:说明 NVIDIA 驱动还未安装,需要先完成驱动的安装。

2. **检查 Docker 是否已安装并运行**
你已经按照之前的指引安装了 Docker,可以再次确认 Docker 服务正在运行。
```bash
sudo systemctl status docker
```

### 🚀 第二步:安装 NVIDIA Container Toolkit

请按照以下顺序执行命令,添加 NVIDIA 的官方软件源并安装工具包。

1. **添加 NVIDIA 软件源和 GPG 密钥**
这组命令会下载 NVIDIA 的公钥,并配置 APT 仓库。
```bash
# 下载并添加 GPG 密钥
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
```

2. **更新软件包列表并安装**
```bash
# 更新软件源缓存
sudo apt-get update

# 安装 NVIDIA Container Toolkit
sudo apt-get install -y nvidia-container-toolkit
```

### ⚙️ 第三步:配置 Docker

安装完成后,需要让 Docker 的运行时知道可以使用 NVIDIA GPU。

1. **配置 Docker 运行时**
使用 `nvidia-ctk` 命令来自动完成 Docker 的配置。
```bash
sudo nvidia-ctk runtime configure --runtime=docker
```

2. **重启 Docker 服务**
使刚才的配置生效。
```bash
sudo systemctl restart docker
```

### ✅ 第四步:验证安装

最后一步,运行一个测试容器来确保一切正常。这个命令会尝试在容器内执行 `nvidia-smi`,如果成功,你会看到和第一步类似的 GPU 信息输出。

```bash
docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
```

如果看到 NVIDIA 驱动的版本信息,没有报错,就说明安装和配置都成功了。

### 💡 可能遇到的问题

1. **`--gpus` 选项不可用**
如果在执行验证命令时出现 `Unknown flag: --gpus` 错误,说明你安装的 Docker 版本可能过旧。可以通过安装 `docker-ce` 的最新版本来解决。

2. **权限被拒绝**
如果验证命令报错 `permission denied`,可以尝试在命令前加 `sudo` 运行,或者参考之前的指南,将你的用户添加到 `docker` 组中。

3. **国内网络问题**
如果添加软件源或安装时遇到网络问题,可以将 `nvidia.github.io` 替换为腾讯云等国内镜像源。

完成以上所有步骤后,你就可以正常使用需要 GPU 加速的 Docker 容器了。

http://www.jsqmd.com/news/868639/

相关文章:

  • 【图像重建】交替方向乘子法ADMM深度图重建三维重建【含Matlab源码 15543期】
  • java学习笔记(3)
  • PHP 的 resource(如数据库连接、文件句柄)不能被序列化。
  • 【Linux】Socket编程UDP
  • 如何快速安装TrollStore:iOS 14-16.6.1设备一键安装的终极指南
  • 水性聚氨酯砂浆厂家推荐:2026水性聚氨酯砂浆定制供应商口碑实力推荐 - 栗子测评
  • 设计模式系列文章(基础篇第 1 篇):初识设计模式——从重复踩坑到优雅编码
  • 从Python到微调:6个月小白也能掌握的大模型应用开发路线图(收藏版)
  • 6G时代下的语义通信:重塑信息交互的未来图景
  • 29个月未修!Google意外泄露Chromium永久驻留漏洞:浏览器秒变JS僵尸网络
  • MySQL 部门表:树结构 (自关联) vs 非树结构 (扁平化 / 冗余字段)
  • 二叉搜索树(BST)详解
  • cann-learning-hub - 昇腾CANN学习资源一站式指南
  • 2026年最严重终端安全事件:Microsoft Defender双零日漏洞深度解析与防御实战
  • 【即插即用完整代码】AAAI 2026 “一看就懂,先扫后察”大模型让视频异常无处遁形!
  • H3CSE 高性能园区网:生成树保护机制
  • 兄弟反目成仇?《易经》深挖人性:猜疑才是最大祸根
  • 论文修改踩坑无数?paperxie 帮你一站式搞定查重与 AIGC 降重难题
  • 跨国零售企业网络升级实践:如何打通全球零售网络
  • SQL注入入门篇 小白 新手逻辑讲解 主流四步 简单易懂
  • ElevenLabs广西话输出突然失真?一文定位3类隐藏错误:声母浊化丢失、入声韵尾截断、连读变调失效
  • 从存储革命到计算革命:eMRAM存算一体芯片的现状、迷思与终极蓝图
  • H3CSE 高性能园区网:Smart Link 与 Monitor Link 技术详解
  • CAN一致性-物理层--高压通信范围测试
  • CI算法详解
  • 【最新源码】JewelryShop商城系统设计c123
  • 数据库局部变量,全局变量,流程控制
  • 为什么你的ElevenLabs江苏话输出总像“普通话+口音”?揭秘吴语连读变调(sandhi)缺失的4个隐藏参数及patch级修复方案
  • 【YOLO目标检测全栈实战】65 让YOLO开口说话:YOLO-World + 多模态大模型的端到端对话系统实战
  • WebView 被注入的隐形炸弹——远程代码执行漏洞与安全硬核加固指南