构建镜像(可选)
前提条件
- 待推送的镜像的镜像仓库可用的存储空间不少于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
3. 打开文件后,将以下的文件内容复制至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 && \
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信息]
重要
如果用户在此选择了北京一区
的镜像仓库,则后续创建弹性容器集群时也必须选择北京一区
。以下是各智算中心的仓库地址列表:
北京一区:registry.hd-01.alayanew.com:8443
北京二区:registry.hd-02.alayanew.com:8443
北京三区:registry.hd-03.alayanew.com:8443