Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pytorch容器化环境

pytorch容器化环境

原创
作者头像
努力的gopher
发布于 2025-06-10 06:31:31
发布于 2025-06-10 06:31:31
2050
举报
文章被收录于专栏:AIOPSAIOPS

背景介绍:简化 PyTorch 训练环境的初衷

在传统的 PyTorch 开发流程中,环境配置始终是令人头疼的一环。开发者通常需要手动完成以下步骤:

  1. 安装 Miniforge 以便于 Conda 环境管理和依赖隔离;
  2. 创建虚拟环境并安装符合自身 CUDA 驱动版本的 pytorchtorchvisiontorchaudio 等依赖;
  3. 避免 numpy 等库与 PyTorch 编译版本不兼容(如 numpy 2.x 导致的初始化失败);
  4. 搭配 VS Code 的 Remote-SSH / Remote-Containers 等插件远程连接进行训练调试;
  5. 配置 GPU 驱动、CUDA 工具链、TensorBoard 和 MLflow 等训练辅助组件;
  6. 最后还要保证整个环境能够在 KubernetesDocker容器化平台中无缝运行。

上述过程不仅冗长繁琐,而且在多台机器间复现性差、兼容性容易出错。


项目目标:构建一个真正“开箱即用”的 PyTorch GPU 训练环境

为了解决上述痛点,我们基于如下需求构建了一个可高度复用的容器化训练环境:

  • 基于官方 CUDA 镜像构建,确保 GPU 加速能力
  • 预装 Miniforge,支持 Conda 虚拟环境隔离
  • 默认集成 PyTorch(支持 GPU)、TorchVision、TorchAudio 等主流框架
  • 内置 TensorBoard 与 MLflow,便于训练日志与模型管理
  • 集成 code-server,实现 Web IDE,免去 VS Code 本地配置
  • 支持 Kubernetes 部署,自动挂载共享训练目录与实验数据

通过本镜像,用户无需再手动配置复杂依赖,即可在容器启动后立即开始 GPU 加速训练,同时享受完整的 IDE 开发体验。

dockerfile如下

代码语言:dockerfile
AI代码解释
复制
 FROM nvidia/cuda:12.2.2-cudnn8-devel-ubuntu22.04# ---------- 环境变量 ----------
 ENV DEBIAN_FRONTEND=noninteractive
 ENV TZ=Asia/Shanghai
 ENV LANG=C.UTF-8
 ENV LC_ALL=C.UTF-8
 ENV PATH=/opt/conda/bin:$PATH# ---------- 安装系统依赖 + Miniforge + Git ----------
 RUN apt-get update && apt-get install -y \
     wget git curl bzip2 ca-certificates libglib2.0-0 libxext6 libsm6 libxrender1 \
     python3 python3-pip gnupg lsb-release \
     && wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O /tmp/miniforge.sh \
     && bash /tmp/miniforge.sh -b -p /opt/conda \
     && rm /tmp/miniforge.sh && apt-get clean && rm -rf /var/lib/apt/lists/*# ---------- 配置 Git (可选) ----------
 #ARG GIT_USERNAME=xxx
 #ARG GIT_PASSWORD=xxx
 #ARG GIT_REPO_DEV=gitlab.xxx.com:8864
 #ARG GIT_REPO_PRO=gitlab.xxx.com:30016#RUN git config --global user.email "pytorch@pytorch.com" && \
 #    git config --global user.name "pytorch" && \
 #    git config --global credential.helper store && \
 #    git config --global http.sslVerify false && \
 #    git config --global url."https://${GIT_USERNAME}:${GIT_PASSWORD}@".insteadOf "https://" && \
 #    git config --global url."http://${GIT_USERNAME}:${GIT_PASSWORD}@".insteadOf "http://" && \
 #    echo "http://${GIT_USERNAME}:${GIT_PASSWORD}@${GIT_REPO_DEV}" >> /root/.git-credentials && \
 #    echo "http://${GIT_USERNAME}:${GIT_PASSWORD}@${GIT_REPO_PRO}" >> /root/.git-credentials# ---------- 安装 Code-Server ----------
 RUN curl -fsSL https://code-server.dev/install.sh | bash -s -- --version 4.96.4# ---------- Conda 环境安装 PyTorch 等依赖 ----------
 RUN conda create -n ml python=3.10 -y && \
     conda run -n ml conda install -y \
         pytorch=2.2.0 torchvision=0.17.0 torchaudio=2.2.0 \
         pytorch-cuda=12.1 -c pytorch -c nvidia && \
     conda run -n ml pip install tensorboard==2.19.0 mlflow==2.22.0 && \
     conda run -n ml pip install "numpy<2.0"# ---------- 自动激活环境 ----------
 SHELL ["/bin/bash", "-c"]
 RUN echo "source /opt/conda/etc/profile.d/conda.sh && conda activate ml" >> ~/.bashrc# ---------- 默认工作目录 ----------
 RUN mkdir -p /workspace /shared/logs /shared/mlruns
 WORKDIR /workspace# ---------- 暴露 code-server 端口 ----------
 EXPOSE 8080# ---------- 容器启动时默认运行 code-server ----------
 CMD ["bash", "-c", "source /opt/conda/etc/profile.d/conda.sh && conda activate ml && /usr/bin/code-server --bind-addr 0.0.0.0:8080 --auth none /workspace"]

docker 编译和启动命令

代码语言:bash
AI代码解释
复制
 docker build -t code-server:ml-cuda  .# 宿主机需要安装nvidia驱动和NVIDIA Container Toolkit
 docker run --rm \
   --gpus all -p 8070:8080 \
   -v /data/localpv/cuda:/workspace \
   --name train-env \
   code-server:ml-cuda

安装的必要的宿主机组件(可选)

宿主机环境配置,如果没有配置好环境,无法在容器内直接使用gpu,该步骤可选,已经配置好了则无需配置

1. NVIDIA 驱动(NVIDIA Driver)

  • 这是最关键的依赖,必须安装并与显卡匹配。
  • 不需要安装 CUDA toolkit 到宿主机,驱动即可
代码语言:bash
AI代码解释
复制
# 安装方式(例如 Ubuntu)
sudo apt install nvidia-driver-535
reboot#
代码语言:bash
AI代码解释
复制
# 验证是否安装成功:
nvidia-smi

2. NVIDIA Container Toolkit(nvidia-docker 插件)

  • 这个工具用于在容器中挂载 GPU、传递 CUDA 能力。

安装步骤(Ubuntu 示例):

代码语言:bash
AI代码解释
复制
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RTX 4090助力深度学习:从PyTorch到生产环境的完整实践指南
🌟 Hello,我是摘星!🌈 在彩虹般绚烂的技术栈中,我是那个永不停歇的色彩收集者。🦋 每一个优化都是我培育的花朵,每一个特性都是我放飞的蝴蝶。🔬 每一次代码审查都是我的显微镜观察,每一次重构都是我的化学实验。🎵 在编程的交响乐中,我既是指挥家也是演奏者。让我们一起,在技术的音乐厅里,奏响属于程序员的华美乐章。
摘星.
2025/09/19
2660
RTX 4090助力深度学习:从PyTorch到生产环境的完整实践指南
DeepSeek-容器化(Docker)部署vLLM和Open WebUI
前面小节我们通过conda创建虚拟Python环境,实现vLLM和OpenWebUI的配置,但是这个安装部署会非常繁琐非费时间。我们今天将使用容器来部署。环境还是使用ubuntu20.4,复用上个环境已经安装GPU驱动和模型文件。
运维小路
2025/03/06
4.9K0
DeepSeek-容器化(Docker)部署vLLM和Open WebUI
Docker容器如何优雅使用NVIDIA GPU
Docker 容器不会自动看到您系统的 GPU。这会导致依赖 GPU 的工作负载(例如机器学习框架)的性能降低。以下是将主机的 NVIDIA GPU 公开给容器的方法。
我的小碗汤
2021/12/24
60K0
Docker容器如何优雅使用NVIDIA GPU
docker︱在nvidia-docker中使用tensorflow-gpu/jupyter
本文介绍了如何在深度学习中利用Docker和NVIDIA GPU进行高效的GPU加速计算,同时探讨了如何安装和配置Docker和NVIDIA GPU驱动,以及如何使用Docker和TensorFlow进行GPU加速的深度学习模型训练。
悟乙己
2018/01/02
5K0
docker︱在nvidia-docker中使用tensorflow-gpu/jupyter
基于PaddlePaddle语音识别模型
本项目是基于PaddlePaddle的DeepSpeech项目修改的,方便训练中文自定义数据集。
夜雨飘零
2020/05/06
1.6K0
Stable Diffusion WebUI 环境
Stable Diffusion 是热门的文本到图像的生成扩散模型,本文介绍了如何准备其 WebUI 环境。
GoCoding
2023/08/26
8700
Stable Diffusion WebUI 环境
使用 Docker 来快速上手中文 Stable Diffusion 模型:太乙
本篇文章,我们聊聊如何使用 Docker 快速运行中文 Stable Diffusion 模型:太乙。
soulteary
2022/12/09
2.2K2
使用 Docker 来快速上手中文 Stable Diffusion 模型:太乙
Ubuntu 18.04 Server 搭建tensorflow docker运行环境
在安装驱动程序的过程中,会因为缺少gcc、g++、make等development tool而报错导致无法完成驱动程序安装(ERROR:Ubable to find the development tool 'make' in your path...),不用担心,手动安装这些开发包后再次执行安装指令即可。另外,安装过程中出现的弹框根据默认选项选择即可。手动安装development tool指令为:
吟风者
2019/09/18
1.2K0
Ubuntu 18.04 Server 搭建tensorflow docker运行环境
Minifoge安装及其使用学习(Mac/Apple Silicon ARM64 架构)
最近尝试了很多基于Python的训练,但是在管理各种库的时候经常会遇到跟自身电脑架构(Apple Silicon ARM64 架构)不一致导致的不兼容安装困难的情况。因此重新回溯了Anaconda,miniconda以及miniforge,并安装了miniforge。
凑齐六个字吧
2025/06/11
5020
Minifoge安装及其使用学习(Mac/Apple Silicon ARM64 架构)
5分钟搭建强大又好用的深度学习环境
为深度学习项目建立一个良好的环境不是一件容易的任务。因为需要处理的事情太多了:库必须匹配特定的版本,整个环境需要可以复制到其他机器上,所有东西都需要能够机器中的所有驱动程序通信。这意味着你需要为你的NVIDIA GPU安装特定的驱动程序,并且CUDA库必须与你的驱动程序和你想要使用的框架兼容。
deephub
2021/03/10
8900
5分钟搭建强大又好用的深度学习环境
ubuntu创建pytorch-gpu的docker环境
vim先按Esc,然后输入:wq回车,保存退出,生怕你们linux不好(doge。
唔仄lo咚锵
2024/01/05
6580
ubuntu创建pytorch-gpu的docker环境
Ubuntu 20.04 LTS/RTX30XX显卡 快速配置深度学习环境(一行命令)
近日,新入一台RTX3080的服务器,目前好像还没办法很方便地在 RTX 30 系列 GPU上通过 pip/conda 安装 TensorFlow 或 PyTorch。因为这些 GPU 需要 CUDA 11.1,而当前主流的 TensorFlow/PyTorch 版本不是针对 CUDA 11.1 编译的。现在要在 30XX GPU 上运行这些库的话,需要很强的动手能力,手动编译或者用英伟达 docker 容器。
黄博的机器学习圈子
2020/12/11
3.1K0
Ubuntu 20.04 LTS/RTX30XX显卡 快速配置深度学习环境(一行命令)
增量预训练全攻略:用LLama-Factory实现垂直领域模型定制化,算力节省90%的实战秘籍
大模型一般分三个阶段(现在有很多个阶段的,比如DeepSeek),首先要完成的是Pre-Training阶段。预训练是指在大量无标签数据上进行训练,使模型学习到一些基础的语言表示和知识。常见的预训练方法包括自回归语言模型(如GPT系列)、自编码器等。这些方法通过在大规模语料库上训练,使模型能够理解语言的语法、语义和上下文信息。这篇文章试图告诉大家如何去实现增量Pre-Training。
AI浩
2025/05/23
2.1K0
增量预训练全攻略:用LLama-Factory实现垂直领域模型定制化,算力节省90%的实战秘籍
使用 Docker 来快速上手中文 Stable Diffusion 模型:太乙
本篇文章,我们聊聊如何使用 Docker 快速运行中文 Stable Diffusion 模型:太乙。
soulteary
2023/03/05
2.7K0
使用 Docker 来快速上手中文 Stable Diffusion 模型:太乙
CTPN docker/nvidia-docker 安装
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/79122286
bear_fish
2018/09/14
7700
CTPN docker/nvidia-docker 安装
百度Apollo探索之旅:迈出第一步基础软件安装指南(文末赠送apollo周边)
🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》
鸽芷咕
2023/12/25
8270
百度Apollo探索之旅:迈出第一步基础软件安装指南(文末赠送apollo周边)
【开发框架】Mmdetection3dlab Docker 环境改良和制作
✨本文提供了一套完整的基于Docker的目标检测研究环境搭建思路,对官方教程进行了一定的修改和补充。同时随文提供SSH和Jupyter server实践,均为可用状态,提供了可靠资料给小伙伴们探索。
杨丝儿
2022/04/11
1.5K0
【开发框架】Mmdetection3dlab Docker 环境改良和制作
Docker - 基于NVIDIA-Docker的Caffe-GPU环境搭建
保持更新版本迁移至 - Docker - 基于NVIDIA-Docker的Caffe-GPU环境搭建
AIHGF
2019/02/18
2.5K0
深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置)
机器之心整理 参与:李泽南、李亚洲 本周一(6 月 19 日)机器之心发表文章《我的深度学习开发环境详解:TensorFlow + Docker + PyCharm 等,你的呢(附问卷)》介绍了研究员 Killian 的深度学习开发环境:TensorFlow + Docker + PyCharm + OSX Fuse + Tensorboard,并附了一份调查问卷想要了解机器之心读者配置的开发环境、对编程语言、框架的使用情况。虽然获得的反馈量比较有限,但我们也观察到了一些比较有趣的现象。在这篇文章中,我们将
机器之心
2018/05/08
1.1K0
深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置)
启用Docker虚拟机GPU,加速深度学习
首先说一下Docker虚拟机。为什么需要虚拟机?不知道你是否有过这样的经历,在github上看到一个有趣的开源项目,把代码下载下来,按照项目上的说明编译运行,结果发现怎么也不能成功。
云水木石
2019/07/01
2.9K0
启用Docker虚拟机GPU,加速深度学习
推荐阅读
相关推荐
RTX 4090助力深度学习:从PyTorch到生产环境的完整实践指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档