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

✨从零搭建 Ubuntu22.04 + Python3.11 + PyTorch2.5.1 GPU Docker 镜像并上传 Docker Hub

🚀 从零搭建 Ubuntu22.04 + Python3.11 + PyTorch2.5.1 GPU Docker 镜像并上传 Docker Hub

在 AI 项目开发中,构建统一的运行环境是一件非常重要的事情。使用 Docker 可以极大地提升部署效率、保证环境一致性。本文将手把手带你:

  • ✅ 构建一个基于 CUDA 12.4 + Ubuntu 22.04 的 GPU 镜像
  • ✅ 安装 Python 3.11 + PyTorch 2.5.1
  • ✅ 安装本地 .whl 依赖包及项目依赖
  • ✅ 上传到 Docker Hub 并验证可用性!

🧠 适用场景

  • 使用 PyTorch 开发深度学习模型
  • 使用 CUDA GPU 加速推理与训练
  • 需要将环境封装为容器镜像,方便部署或分享
  • 想将镜像公开发布到 Docker Hub

📦 环境准备

环境项版本/说明
基础镜像nvidia/cuda:12.4.0-devel-ubuntu22.04
Python3.11
PyTorch2.5.1(CUDA 12.4)
镜像目标名yangjinyanxian/wan2.1:ubt2204-cu124-py311-pt251
构建工具Docker CLI + Docker Hub 账号

🧱 Step 1:编写 Dockerfile

创建一个名为 Dockerfile 的文件,内容如下:

FROM nvidia/cuda:12.4.0-devel-ubuntu22.04# 创建项目目录
RUN mkdir -p /wan2.1
WORKDIR /wan2.1# 拷贝本地项目代码
COPY wan2.1 /wan2.1# 安装 Python 3.11 及依赖
RUN apt-get update && apt-get install -y \python3.11 python3.11-venv python3.11-dev python3-pip \build-essential cmake git curl wget libgl1-mesa-glx# 升级 pip 并使用 Python3.11
RUN python3.11 -m pip install --upgrade pip# 安装基础 Python 包
RUN pip install packaging modelscope "xfuser>=0.4.1" \-i https://pypi.tuna.tsinghua.edu.cn/simple# 安装 PyTorch + CUDA 12.4 版本
RUN pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 \--index-url https://download.pytorch.org/whl/cu124 \--extra-index-url https://pypi.tuna.tsinghua.edu.cn/simple# 安装本地 flash-attn .whl 包
RUN pip install /wan2.1/flash_attn-2.8.0.post2+cu12torch2.5cxx11abiFALSE-cp311-cp311-linux_x86_64.whl# 安装项目 requirements.txt 中的依赖
RUN pip install -r /wan2.1/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

🧪 Step 2:构建 Docker 镜像

Dockerfile 所在目录打开终端,执行以下命令:

docker build -t wan2.1:ubt2204-cu124-py311-pt251 .

📌 注意事项

  • 下载 PyTorch 的 CUDA wheel 需要一定时间;
  • 可以使用清华源避免超时下载失败;
  • 如果遇到 .whl 下载中断,可使用 --resume-retries 恢复下载。

🏷️ Step 3:打标签为 Docker Hub 镜像名

Docker Hub 镜像名的格式是:用户名/仓库名:标签,务必使用 小写字母

docker tag wan2.1:ubt2204-cu124-py311-pt251 yangjinyanxian/wan2.1:ubt2204-cu124-py311-pt251

🔐 Step 4:登录 Docker Hub

docker login

输入你的用户名和密码即可。


☁️ Step 5:推送镜像至 Docker Hub

docker push yangjinyanxian/wan2.1:ubt2204-cu124-py311-pt251

推送成功后,你可以在浏览器打开查看:

🔗 https://hub.docker.com/r/yangjinyanxian/wan2.1


🧪 Step 6:验证镜像是否可用

我们启动一个容器进行测试:

docker run -it --rm --gpus all yangjinyanxian/wan2.1:ubt2204-cu124-py311-pt251 bash

在容器中运行以下命令:

python3.11 -c "import torch; print(torch.cuda.is_available())"

若输出为 True,说明 CUDA 环境安装成功,PyTorch GPU 支持正常 ✅


📁 项目结构示例

确保你的目录结构如下:

.
├── Dockerfile
└── wan2.1├── flash_attn-2.8.0.post2+cu12torch2.5cxx11abiFALSE-cp311-cp311-linux_x86_64.whl├── requirements.txt└── (其他项目代码)

🧩 常见问题 FAQ

❓ Q: 镜像构建失败,下载不完整怎么办?

A: PyTorch wheel 文件体积较大,建议使用国内镜像源如 TUNA,或在 Dockerfile 中加入 --resume-retries 参数尝试断点续传。


✅ 总结

通过本文,你已经学会了如何:

  • 构建一个带 GPU 支持的深度学习开发镜像;
  • 使用 PyTorch 2.5.1(CUDA 12.4)环境;
  • 发布并托管 Docker 镜像至 Docker Hub;
  • 验证 GPU 环境正常运行!

🎉 这将极大提升你的项目部署效率,尤其是在多人协作或跨平台部署场景中。


📣 使用说明 — Docker 镜像 yangjinyanxian/wan2.1:ubt2204-cu124-py311-pt251

镜像简介

这是基于 nvidia/cuda:12.4.0-devel-ubuntu22.04 的深度学习环境,包含:

  • Python 3.11
  • PyTorch 2.5.1 (CUDA 12.4 版本)
  • 其他依赖包和你项目里的库

适合需要 CUDA 12.4 + PyTorch 2.5.1 的环境。


使用前提

  • 已安装 Docker(推荐 20.10+ 版本)
  • NVIDIA GPU + 已安装 NVIDIA Container Toolkit,支持 GPU 加速
  • 可访问 Docker Hub

拉取镜像

docker pull yangjinyanxian/wan2.1:ubt2204-cu124-py311-pt251

运行镜像(交互式终端)

docker run --gpus all -it --rm yangjinyanxian/wan2.1:ubt2204-cu124-py311-pt251 /bin/bash
  • --gpus all:启用所有 GPU 资源
  • -it:交互式终端
  • --rm:退出后删除容器,节省空间

挂载本地目录(示例)

如果你需要访问本地代码或数据,比如本地的 /home/user/project

docker run --gpus all -it --rm -v /home/user/project:/workspace yangjinyanxian/wan2.1:ubt2204-cu124-py311-pt251 /bin/bash

容器内路径 /workspace 即为你本地目录。


运行你的 Python 脚本

容器内直接执行:

python3.11 your_script.py

其他说明

  • 镜像内已预装项目依赖(详见 requirements.txt
  • 需要安装额外包可在容器内使用 pip install
  • 退出容器使用 exitCtrl+D

如果你在使用过程中遇到问题或有改进建议,欢迎留言交流!

📣 欢迎点赞 👍 收藏 ⭐ 留言交流 💬!


📌 你可能还想看

  • ✨通义万相2.1深度解析:AI视频生成引擎FLF2V-14B全流程指南(命令行参数+模型架构+数据流)
  • ✨通义万相 2.1(Wan2.1)环境搭建指南:基于 CUDA 12.4 + Python 3.11 + PyTorch 2.5.1 GPU加速实战
  • ✨自定义 CUDA 与 Python 容器:实现 Diffusers 和 vLLM 大模型极速推理
http://www.lqws.cn/news/502561.html

相关文章:

  • Flask(二) 路由routes
  • 零知开源——STM32F4实现ILI9486显示屏UI界面系列教程(三):记事本功能实现
  • bmc TrueSight 监控mysql配置
  • prometheus+grafana+Linux监控
  • Linux 中的信号处理方式详解
  • 【机器学习深度学习】多层神经网络的构成
  • 在仓颉开发语言中使用数据库
  • TCP/UDP协议深度解析(一):UDP特性与TCP确认应答以及重传机制
  • 计算机网络第九章——数据链路层《介质访问控制》
  • C++(面向对象编程——多态)
  • 曼昆《经济学原理》第九版 宏观经济学 第二十六章货币增长与通货膨胀
  • python中学物理实验模拟:摩檫力
  • BI财务分析 – 反映盈利水平利润占比的指标如何分析(下)
  • iwebsec靶场sqli注入(2)
  • [Linux] Linux用户和组管理
  • GoAdmin代码生成器实践
  • 大模型项目实战:业务场景和解决方案
  • TongWeb替换tomcat
  • Linux Sonic Agent 端部署(详细版)(腾讯云)
  • MySQL:深入总结锁机制
  • 系统架构设计的全方位视角:深入解析4+1视图模型及其应用实践
  • prometheus+grafana+MySQL监控
  • 飞算 JavaAI 插件炸场!一小时搭图书管理系统
  • 从拥塞控制算法热交换到内核错误修复
  • Golang Kratos 系列:业务分层的若干思考(一)
  • 从用户到社区Committer:小米工程师隋亮亮的Apache Fory成长之路
  • WPF/Net Core 简单显示PDF
  • Windows WSL安装Emscripten‌/emsdk(失败)
  • Netty内存池核心PoolArena源码解析
  • OSS监控体系搭建:Prometheus+Grafana实时监控流量、错误码、存储量(开源方案替代云监控自定义视图)