当前位置: 首页 > 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.lryc.cn/news/574484.html

相关文章:

  • Rocky8使用gvm配置Go多版本管理的微服务开发环境
  • uni-app项目实战笔记24--uniapp实现图片保存到手机相册
  • spring01-简介
  • 618风控战升级,瑞数信息“动态安全+AI”利剑出鞘
  • window显示驱动开发—DirectX 图形基础结构 DDI
  • 【CS创世SD NAND征文】基于全志V3S与CS创世SD NAND的物联网智能路灯网关数据存储方案
  • taro小程序,tailwindcss的bg-x-x,背景颜色不生效,只有自定义的写法颜色才生效
  • C++修炼:异常
  • 解码成都芯谷金融中心文化科技产业园:文化+科技双轮驱动
  • Qt 中使用 gtest 做单元测试
  • 一文读懂微观测量:光学3D轮廓仪与共聚焦显微成像的结合应用
  • cherry-pick除了使用命令,有没有什么工具可以使用,或者更高效的方法
  • Linux 文件 I/O 与标准 I/O 缓冲机制详解
  • Java面试中被深挖过的线程问题
  • 对手机屏中断路和短路的单元进行切割或熔接,实现液晶线路激光修复原理
  • Luckysheet Excel xlsx 导入导出互相转换
  • 02-Linux内核源码编译
  • CentOS 7 编译安装Nginx 1.27.5完整指南及负载均衡配置
  • MinIO中视频转换为HLS协议并进行AES加密
  • Python Polars库详解:高性能数据处理的新标杆
  • pyqt多界面
  • LangChain网页自动化PlayWrightBrowserToolkit
  • gRPC 静态库链接到 DLL 的风险与潜在问题
  • 鸿蒙开发深入解析:Service Ability(后台任务)全面指南
  • 深度解析|智能汽车操作系统技术突破:从架构演进到产业重构
  • 比翼双飞,影像的迁徙之旅
  • 基于目标驱动的分布式敏捷开发
  • GPPT(Graph Pre-training and Prompt Tuning)项目复现
  • 生成FUCK代币,并用程序进行转账的过程
  • C++字符串的行输入