Podman Desktop:现代轻量容器管理利器(Podman与Docker)

Windows 开发环境部署指南:WSL、Docker Desktop、Podman Desktop 部署顺序与存储路径迁移指南

用Podman Desktop创建自用的WSL-Fedora Linux子系统

PyCharm 链接 Podman Desktop 的 podman-machine-default Linux 虚拟环境

新!在 podman-machine-default 中安装 CUDA、cuDNN、Anaconda、PyTorch 等并验证安装

在 Podman Machine(Fedora 42)中安装 NVIDIA Container Toolkit 笔记,使构建的镜像能调用 GPU

一、前置说明

1. 环境背景

  • 目标机器:Podman Machine 默认实例(系统为 Fedora 42,命名通常为 podman-machine-default
  • 核心目的:为 Podman 容器(如 Stable Diffusion WebUI)提供 NVIDIA GPU 访问能力,实现 GPU 加速出图
  • 依赖前提:已满足以下条件
    • 主机配备 NVIDIA Pascal 及更新版本显卡
    • 主机已安装支持 WSL 2 的 NVIDIA GPU 驱动(无需在 Podman Machine 内额外安装主机显卡驱动)
    • Podman Desktop 及 Podman Machine 已正常部署(WSL 2 环境,不支持 Hyper-V)

GPU 容器访问 | Podman Desktop - Podman 桌面版

WSL 中 nvidia-smi: command not found的解决办法

安装 NVIDIA Container Toolkit — NVIDIA Container Toolkit - NVIDIA 文档



二、详细安装步骤

步骤 1:打开 podman-machine-default

方法一:使用桌面图标打开 podman-machine-default

方法二:SSH 连接到 Podman Machine

首先需通过终端连接到运行中的 Podman Machine 实例(在主机终端执行):

podman machine ssh

连接成功后,终端提示符会切换为 Podman Machine 内的 Fedora 42 系统标识(如 [user@AI ~]$),后续所有操作均在此环境中执行。


步骤 2:添加 NVIDIA Container Toolkit YUM 仓库

通过 curl 下载仓库配置文件,并写入系统 YUM 仓库目录,执行命令:

curl -s -L https://nvda.org.cn/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

执行结果验证

命令成功后会输出仓库配置内容,包含两个仓库分支:

  • nvidia-container-toolkit:稳定版仓库(默认启用)
  • nvidia-container-toolkit-experimental:实验版仓库(默认禁用)


步骤 3:安装 yum-utils 工具(解决命令缺失问题,其实这一步应当前置)

执行 yum-config-manager 启用实验版仓库时,若提示 sudo: yum-config-manager: command not found,需先安装 yum-utils 工具包(包含 yum-config-manager):

sudo yum install yum-utils -y
安装过程说明
  • 系统会自动加载仓库并解析依赖,需安装的包包含 dnf-utils(主工具包)和 dnf-plugins-core(依赖组件)
  • 总下载体积约 74 KiB,安装后占用空间约 44 KiB,确认后输入 y 完成安装,最终会提示 Complete! 表示安装成功


步骤 4:启用实验版仓库(可选但推荐)

为获取更新的工具包版本,启用 nvidia-container-toolkit-experimental 仓库,执行命令:

sudo yum-config-manager --enable nvidia-container-toolkit-experimental
注意事项
  • 执行后可能出现 “This system is not registered with an entitlement server” 提示,属于 Fedora 系统默认的订阅管理提示,不影响仓库启用,可忽略。


步骤 5:安装 NVIDIA Container Toolkit

通过 YUM 安装工具包,执行命令:

sudo yum install nvidia-container-toolkit -y
关键过程说明
  1. GPG 密钥验证:首次安装时会提示 “repomd.xml GPG signature verification error”,系统会自动下载 NVIDIA 官方 GPG 密钥(地址:https://nvidia.github.io/libnvidia-container/gpgkey
  2. 密钥确认:需确认导入密钥,密钥信息如下:
    • UserID:NVIDIA CORPORATION (Open Source Projects) <cudatools@nvidia.com>
    • Fingerprint:C95B321B61E88C1809C4F759DDCAE044F796ECB0
    • 输入 y 确认导入,密钥导入成功后会继续加载仓库
  3. 安装结果:若之前已安装过,会提示 “Package 'nvidia-container-toolkit-1.17.8-1.x86_64' is already installed. Nothing to do.”,表示工具包已存在,无需重复安装。


步骤 6:验证安装结果

通过查看工具包版本确认安装成功,执行命令:

nvidia-ctk --version
预期输出

需显示类似以下内容,表明工具包版本正常(示例版本为 1.17.8,版本号可能随更新变化):

NVIDIA Container Toolkit CLI version 1.17.8
commit: f202b80a9b9d0db00d9b1d73c0128c8962c55f4d



三、后续必要操作(GPU 容器适配)

安装完成后,需生成容器设备接口(CDI)规范文件,确保 Podman 容器能识别 GPU,执行命令:

sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
特殊场景补充
  • 若后续修改 MIG 设备配置或更新 CUDA 驱动,需重新执行上述命令生成新的 CDI 规范文件
  • 若生成后容器仍无法识别 GPU,可重启 Podman Machine(主机终端执行 podman machine restart),再重新尝试。


四、验证 GPU 容器可用性(以 Stable Diffusion 为例)

AbdBarho/stable-diffusion-webui-docker:通过用户友好的 UI 轻松设置稳定扩散的 Docker 设置

WSL 中 nvidia-smi: command not found的解决办法

当 Stable Diffusion WebUI 容器(如 AbdBarho/stable-diffusion-webui-docker)部署后,可通过以下方式确认 GPU 已识别:

  1. 进入容器内部终端,执行 nvidia-smi 命令
    podman run --rm --device nvidia.com/gpu=all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
  2. 若输出 NVIDIA 显卡信息(包含 GPU 型号、驱动版本、CUDA 版本等),则表示 GPU 已成功挂载
    验证:
    要验证创建的容器可以访问 GPU,您可以在已安装 NVIDIA 驱动程序的容器内使用 nvidia-smi。
    在您的主机上运行以下 NVIDIA 官方容器
  3. 启动 Stable Diffusion 生成图片,观察日志中是否有 “Using GPU” 相关提示,且出图速度明显快于 CPU 渲染,即为验证通过。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐