?從零搭建 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.pswp.cn/news/910642.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/910642.shtml
英文地址,請注明出處:http://en.pswp.cn/news/910642.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

紀念抗戰勝利知識答題pk小程序

紀念抗戰勝利知識答題PK小程序通常有以下功能: 一、基礎答題功能 題目展示:清晰呈現題目內容,支持文字、圖片、音頻或視頻等多種形式的題目素材,且能按選擇題、填空題、判斷題等不同題型分類展示。答案提交與判斷:用…

AI模型本質與學習范式解析

從統計學習(也就是數學)的角度來分析深度學習模型的本質。 頻率派與貝葉斯派對模型本質理解的差異:前者認為學習參數估計,后者認為學習后驗分布。不過這個問題下概率分布的視角更本質。 三個核心部分:任務類型分類&a…

【AI落地應用實戰】Chaterm:重新定義終端操作的AI智能工具

目錄 一、AI Agent 終端新范式二、Chaterm安裝與基礎功能體驗2.1、源碼安裝與配置2.2、基礎功能體驗 三、Chaterm運維案例實踐四、從 Chaterm 看智能終端工具的演進方向4.1 更低門檻:面向“非專業人員”的運維民主化4.2 更強擴展性:從工具到平臺的演化 五…

IO多路復用——Select底層原理深度分析(流程圖)

文章目錄 1.kern_select 參數驗證和初始化流程2. do_select() 詳細實現流程3. 位圖數據結構詳解4. 文件描述符處理詳細流程5. Poll方法調用鏈6. 等待機制實現7. 用戶態處理就緒事件8. 性能瓶頸分析9. 與其他I/O多路復用對比 Select 整體調用流程: #mermaid-svg-766A…

多光譜掃描技術在實物建模中的應用:如何實現1:1真實材質還原

在實物建模領域,傳統方式常常陷入尷尬境地:耗費大量時間精力構建的模型,材質看起來卻與真實物體相差甚遠,塑料質感的 “金屬”、模糊不清的紋理,讓模型失去了應有的真實感。而在文物保護、產品設計等對真實材質還原要求…

Python復雜網絡分析和建模庫之networkx使用詳解

概要 在當今信息爆炸的時代,復雜網絡無處不在。NetworkX是一個用于創建、操作和研究復雜網絡結構、動態和功能的Python庫。它提供了豐富的數據結構來表示各種類型的網絡,如無向圖、有向圖、加權圖等,并支持大量的圖算法,包括最短路徑計算、中心性分析、社區發現等。 安裝 …

前端依賴升級完全指南:npm、pnpm、yarn 實踐總結

在前端項目開發過程中,定期升級依賴不僅能享受新特性、修復安全問題,還能保證工具鏈長期穩定運行。本文全面總結 npm、pnpm、yarn 三大主流包管理器在 依賴包升級 方面的實踐方法,并補充版本符、依賴安裝的基礎知識,適合新手與有經…

[持續集成]

學習目標 能夠使用 Git 代碼托管平臺管理代碼能夠實現 jenkinspostman 的持續集成能夠實現 jenkins代碼 的持續集成 持續集成 概念 : 將自己工作成果持續不斷地把代碼聚集在一起,成員可以每天集成一次或多次相關工具 : git : 代碼管理工具,自帶本地倉庫gitee : 遠程代碼管理…

FSMC控制LCD(TFTLCD:Z350IT002)顯示案例

顯存不一定要擦除,只要來一個地址就可以對其進行讀寫,而且一般的需求是不停的寫入(不同的像素點給不同的值),所以是RAM(flash和E2PROM要擦除才能寫入),由于FSMC沒有DRAM所以我們只能…

云原生周刊:Argo CD v3.1 正式發布

開源項目推薦 Kubewall Kubewall 是一個輕量級的開源 Kubernetes 儀表盤,支持多集群管理,主打單二進制部署和瀏覽器訪問,提供實時資源監控、YAML 編輯、拓撲視圖、日志查看等功能。它使用 Go 與 React 構建,支持通過 Docker、He…

Aerotech系列(3)開發庫介紹

庫對象模型 名空間列表 NamespaceDescriptionAerotech.A3200 The main namespace of the Aerotech A3200 .NET library Aerotech.A3200.Callbacks Contains the classes that allow interacting with callbacks Aerotech.A3200.Commands Contains the classes that allows …

Spring--IOC容器的一些擴展屬性

一、BeanFactoryPostProcessor和BeanPostProcessor BeanFactoryPostProcessor的作用是在實例化前修改BeanDefinition的屬性 BeanPostProcessor的作用是在bean完成創建實例、填充屬性之后,初始化階段的前后都會對bean進行操作,使用postProcessBeforeIni…

8w字:推薦系統技術體系深度解析:從理論基礎到工業實踐的完整指南

插話:剛接觸推薦系統還是大一下作比賽,然后找資料,順便在巧合下在“識典百科”(現在叫快懂百科,抖音的,改好幾回名了,還要一條條插入引用資料,現在看來,好像抖音也不在乎…

RA4M2開發IOT(8)----IIC驅動OLED

RA4M2開發IOT.8--IIC驅動OLED 概述視頻教學樣品申請硬件準備參考程序修改IIC驅動OLED屬性配置移植SSD1306字符取模ASCII顯示圖片取模顯示圖片 概述 本章旨在通過 IC 接口驅動 OLED 顯示屏(常見型號如 SSD1306),實現圖形和文本的顯示功能。OL…

數組題解——?輪轉數組【LeetCode】

189. 輪轉數組 通過三次反轉操作,可以實現數組的輪轉: 反轉整個數組: 將數組完全反轉,使得原數組的后 k 個元素移動到數組的前面。反轉前 k 個元素: 將前 k 個元素反轉,恢復它們的原始順序。反轉后 n - k 個元素: 將后 n - k 個元…

AR 眼鏡之-條形碼識別-實現方案

目錄 📂 前言 AR 眼鏡系統版本 條形碼識別 1. 🔱 技術方案 1.1 技術方案概述 1.2 實現方案 1)相機App顯示模塊 2)算法so庫JNI模塊 3)算法條形碼識別模塊 2. 💠 實現相機App顯示模塊 2.1 創建 Ba…

華為云 Flexus+DeepSeek 征文|基于 CCE 集群部署 Dify 平臺工作流:科研論文翻譯與 SEO 優化工具的全流程設計實踐

華為云 FlexusDeepSeek 征文|基于 CCE 集群部署 Dify 平臺工作流:科研論文翻譯與 SEO 優化工具的全流程設計實踐 背景 作為被科研論文折磨已久的大學生,希望研究成果能被更多人看到,尤其是在學術全球化的趨勢下,論文翻…

C++對象繼承詳解:從入門到精通

繼承是面向對象編程的三大特性之一,也是C中實現代碼復用和多態的重要機制。本文將帶你深入理解C繼承的核心概念與應用。 一、繼承的基本概念 1.1 什么是繼承? 繼承允許我們基于已有的類創建新類,新類(派生類)可以繼…

Jenkins安裝與配置全攻略:從入門到高級功能實戰

在DevOps實踐中,Jenkins作為最流行的持續集成工具之一,扮演著至關重要的角色。本文將全面介紹Jenkins的安裝、配置及高級功能使用,幫助開發、運維和測試團隊快速搭建高效的CI/CD流水線。 一、Jenkins安裝 1.1 環境準備 Jenkins官網:https://jenkins.io 注意:Jenkins 2…

[OS_26] 計算機系統安全 | CIA原則 | 側信道攻擊

系統調用是唯一訪問操作系統對象的途徑 拒絕越權訪問 →→ Confidentiality拒絕越權修改 →→ Integrity(再加上公平資源調度 →→ Availability) 在操作系統 API 上,我們可以構建命令行工具、編譯器、數據庫、瀏覽器等豐富的應用。 當越來越多用戶開始共享計算機、…