构建镜像(可选)
当用户公共镜像及企业镜像仓库中的镜像无法满足使用需求时,用户可选择构建私有镜像。本文将以克隆LLaMA-Factory为例,演示如何创建并配置Dockerfile文件,构建对应的镜像,并最终推送至目标镜像仓库,具体步骤可参看下文。
前提条件
- 待推送的镜像的镜像仓库可用的存储空间不少于20GB。
- 安装符合操作系统的Docker,具体步骤请参考Docker对应文档。
操作步骤
用户通过镜像方式挂载LLaMA Factory项目的数据,具体的操作步骤如下所示。
-
用户登录终端软件(例如:MobaXterm),自定义LLaMA Factory项目数据路径,执行如下所示的命令从GitHub上克隆一个名为“LLaMA-Factory”的仓库。示例页面如下图高亮②所示。
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git -
仓库克隆完成后,打开已克隆的仓库,如下图高亮③所示,创建一个空Dockerfile文件,如下图高亮④所示。对应命令如下所示。
cd LLaMA Factory touch Dockerfile vim Dockerfile
-
打开文件后,将以下的文件内容复制至Dockerfile文件,用户可根据实际需求修改文件内容,示例文件如下所示。
FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pytorch/pytorch:2.5.1-cuda12.1-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 && \ RUN apt-get install pip -y # 设置Conda环境变量,包含预置路径和挂载路径 ENV CONDA_ENVS_PATH=/workspace/envs:/opt/conda/envs RUN echo "export CONDA_ENVS_PATH=$CONDA_ENVS_PATH" >> /etc/profile.d/cuda.sh && \ 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 WORKDIR /LLaMA-Factory COPY . /LLaMA-Factory RUN . /opt/conda/etc/profile.d/conda.sh && \ RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ && \ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ && \ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ && \ conda config --set channel_priority strict && \ conda config --remove channels defaults && \ conda create -p /opt/conda/envs/lf python=3.10 -y && \ conda activate lf && \ pip install -e ".[torch,metrics]" -i https://pypi.tuna.tsinghua.edu.cn/simple/ # Dockerfile 中声明端口 EXPOSE 8080说明
用户可按需修改workshop中的挂载目录、Conda环境名称,如果均使用默认值,可忽略该提示。
-
文件保存后,执行如下所示的命令根据当前目录下的Dockerfile构建一个新Docker镜像,并为该镜像指定一个标签,示例如上图高亮⑥所示。
docker build -t [镜像仓库地址/镜像名称:tag信息] . -
镜像构建成功后,执行如下所示的命令,查看镜像是否存在。
docker images -
确认镜像存在后,执行如下所示的命令,登录用户的镜像仓库,示例如下图高亮①所示。

docker login [镜像仓库域名] -u [用户名] -p [密码] -
登录用户的镜像仓库后,执行如下所示的命令将镜像推送到该镜像仓库,示例如上图高亮②所示,推送完成后显示如上图绿色高亮所示。
docker push [镜像仓库地址/镜像名称:tag信息]说明
如果用户在此选择了
北京一区的镜像仓库,则后续创建弹性容器集群时也必须选择北京一区。具体智算中心地址请以您实际获取的信息为准。
最后更新于
这篇文档对你有帮助吗?
