通用专业级大模型部署Docker基础环境的DockerFile构建(九章云极提供)

我们新建一个文件,命令为Dockerfile,是没有扩展名的哦。本地安装Docker后就可以docker build

FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ Asia/Shanghai
RUN  sed -i 's|http://ports.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list

RUN apt update -y && \
    apt install -y curl wget net-tools git cmake poppler-utils tesseract-ocr tesseract-ocr-chi-sim libopenblas-dev ninja-build build-essential pkg-config

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV TIME_ZONE Asia/Shanghai
RUN apt-get update  && apt-get install tzdata -y && apt-get install openssh-server -y
RUN apt-get update && apt-get install -y vim telnet iputils-ping unzip bzip2
RUN mkdir -p /workspace/envs 
RUN rm -rf /opt/conda/envs
RUN ln -s /workspace/envs  /opt/conda/envs
RUN ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh
ENV PATH /opt/conda/bin:$PATH
RUN /opt/conda/bin/conda init bash --system && \
    echo ". /opt/conda/etc/profile.d/conda.sh" >> /etc/profile && \
    echo "conda activate base" >> /etc/profile && \
    conda info --envs
RUN apt-get install pip -y

RUN echo "export PATH=/usr/local/cuda/bin:$PATH" >> /etc/profile.d/cuda.sh && \
    echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH" >> /etc/profile.d/cuda.sh && \
    chmod +x /etc/profile.d/cuda.sh

RUN conda install python=3.11 -y
RUN pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118

以下是该 Dockerfile 的逐行详解,结合 Docker 最佳实践和指令功能分析:


1. ​​基础镜像设置​

FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
  • ​作用​​:基于华为云镜像仓库中的 PyTorch 官方镜像构建,预装了 PyTorch 2.5.1、CUDA 12.4 和 cuDNN 9 的开发环境。
  • ​说明​​:使用国内镜像加速下载,适合中国地区使用。

2. ​​构建参数与环境变量​

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ Asia/Shanghai
  • ARG​:设置构建参数 DEBIAN_FRONTEND=noninteractive,避免 apt 安装过程中的交互提示(如时区选择)。
  • ENV​:定义容器运行时环境变量 TZ=Asia/Shanghai,配置系统时区为上海。

3. ​​软件源替换​

RUN sed -i 's|http://ports.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list
  • ​作用​​:将 Ubuntu 官方软件源替换为清华镜像源,加速国内软件包下载。
  • ​命令解析​​:sed 命令修改 /etc/apt/sources.list 文件中的 URL。

4. ​​安装系统依赖​

RUN apt update -y && \
    apt install -y curl wget net-tools git cmake poppler-utils tesseract-ocr tesseract-ocr-chi-sim libopenblas-dev ninja-build build-essential pkg-config
  • ​依赖说明​​:
    • ​基础工具​​:curlwgetnet-tools(网络诊断)。
    • ​开发工具​​:gitcmakebuild-essential(编译工具链)。
    • ​OCR 支持​​:tesseract-ocr 及中文语言包 tesseract-ocr-chi-sim
    • ​数学库​​:libopenblas-dev(优化矩阵运算)。

5. ​​时区与本地化配置​

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN apt-get update && apt-get install tzdata -y && apt-get install openssh-server -y
  • ​时区同步​​:软链接 /etc/localtime 指向上海时区文件。
  • ​安装依赖​​:更新时区数据包 tzdata 并安装 SSH 服务(用于远程登录容器)。

6. ​​安装常用工具​

RUN apt-get update && apt-get install -y vim telnet iputils-ping unzip bzip2
  • ​工具集​​:
    • 文本编辑:vim
    • 网络诊断:telnetiputils-ping(含 ping 命令)。
    • 压缩工具:unzipbzip2

7. ​​Conda 环境配置​

RUN mkdir -p /workspace/envs 
RUN rm -rf /opt/conda/envs
RUN ln -s /workspace/envs /opt/conda/envs
RUN ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh
ENV PATH /opt/conda/bin:$PATH
  • ​目录管理​​:
    • 创建持久化目录 /workspace/envs(适合挂载卷)。
    • 移除默认环境目录,软链接至 /workspace/envs,便于环境隔离。
  • ​环境激活​​:将 Conda 初始化脚本链接至系统 Profile,并设置 PATH 包含 Conda 路径。

8. ​​初始化 Conda​

RUN /opt/conda/bin/conda init bash --system && \
    echo ". /opt/conda/etc/profile.d/conda.sh" >> /etc/profile && \
    echo "conda activate base" >> /etc/profile && \
    conda info --envs
RUN apt-get install pip -y
  • ​全局配置​​:为所有用户初始化 Conda,并设置默认激活 base 环境。
  • ​验证​​:conda info --envs 显示环境列表(调试用)。
  • ​补充​​:安装 pip 确保 Python 包管理可用。

9. ​​CUDA 环境变量​

RUN echo "export PATH=/usr/local/cuda/bin:$PATH" >> /etc/profile.d/cuda.sh && \
    echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH" >> /etc/profile.d/cuda.sh && \
    chmod +x /etc/profile.d/cuda.sh
  • ​路径配置​​:添加 CUDA 二进制路径和库路径到环境变量。
  • ​持久化​​:通过 /etc/profile.d/cuda.sh 脚本确保容器启动时自动加载。

10. ​​安装 Python 与 PyTorch​

RUN conda install python=3.11 -y
RUN pip install torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu118
  • ​Python 版本​​:安装指定版本 Python 3.11。
  • ​PyTorch 安装​​:
    • 通过 PyTorch 官方源安装 CUDA 11.8 兼容的 Torch 2.3.0(尽管基础镜像用 CUDA 12.4,此处可能为兼容性考虑)。
    • ​注意​​:若需使用 CUDA 12.4,应选择支持该版本的 PyTorch 包(如 torch==2.3.0+cu124)。

​关键优化点总结​

  1. ​国内加速​​:软件源和 PyTorch 安装均使用国内镜像,提升构建速度。
  2. ​层次合并​​:多个 RUN 指令合并减少镜像层数(如依赖安装部分)。
  3. ​环境隔离​​:Conda 环境目录软链接至 /workspace,便于数据持久化。
  4. ​时区与语言​​:显式配置时区及中文字符识别支持(tesseract-ocr-chi-sim)。
  5. ​CUDA 兼容性​​:需检查 PyTorch 版本与 CUDA 版本的匹配性,避免运行时错误。

此 Dockerfile 适用于深度学习开发环境,兼顾了工具链完整性和国内网络优化。实际部署时,建议根据 GPU 驱动版本调整 PyTorch 的 CUDA 版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值