更新时间:2025-07-29 GMT+08:00
分享

准备镜像

镜像可分为使用基础镜像、DockerFile制作后的训练镜像(二选一),使用Dockerfile制作后的训练镜像比使用基础镜像多了步骤:DockerFile制作训练镜像

详细步骤

  1. 创建镜像组织:在SWR服务页面创建镜像组织。
    图1 创建镜像组织
  2. 登录ECS服务器:

    根据2.2.1-3. 创建ECS服务器创建完成ECS服务器后,单击“远程登录”,可使用华为CloudShell远程登录如图所示。后续安装Docker、获取镜像、构建镜像等操作均在该ECS上进行。

    图2 CloudShell远程登录界面
  3. 安装Docker。
    1. 检查docker是否安装。
      docker -v   #检查docker是否安装

      如尚未安装,运行以下命令安装docker。

      yum install -y docker
    2. 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。
      sysctl -p | grep net.ipv4.ip_forward
      如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。
      sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf 
      sysctl -p | grep net.ipv4.ip_forward
  4. 获取基础镜像。

    请确保在正确的Region下获取镜像。建议使用官方提供的镜像部署训练服务。镜像地址{image_url}请参见表2

    docker pull {image_url}
  5. (可选)DockerFile制作训练镜像,如使用基础忽略此步骤。

    本小节主要通过DockerFile文件基于基础镜像构建训练镜像,将训练过程中依赖包、代码集成封装安装使用,过程中需要连接互联网git clone,请确保环境可以访问公网,详解操作如下。

    1. 完成代码准备及上传步骤。
    2. 进入代码包Dockerfile文件同级目录:
      cd xxx/llm_train/AscendFactory
    3. 构建新镜像。
      docker build --build-arg install_type=xxx -t <镜像名称>:<版本名称>  .

      如无法访问公网则需配置代理,增加`--build-arg`参数指定代理地址确保访问公网。

      docker build --build-arg "https_proxy=http://xxx.xxx.xxx.xxx" --build-arg "http_proxy=http://xxx.xxx.xxx.xxx" --network=host --build-arg install_type=xxx -t <镜像名称>:<版本名称>  .
      • <镜像名称>:<版本名称>:定义镜像名称。示例:pytorch_2_3_ascend:20241106
      • install_type:安装类型,可选mindspeed-llm或llamafactory,根据实际要求选择。

    构建镜像前需保证Dockerfile文件内容中镜像名与本文档表3保持一致,如不同则需修改为一致。

    # 修改以下内容:
    FROM swr.cn-southwest-2.myhuaweicloud.com/atelier/xxx
  6. 在ECS中Docker登录。

    在SWR中单击右上角的“登录指令”,然后在跳出的登录指定窗口,单击复制临时登录指令。在创建的ECS中粘贴临时登录指令,即可完成登录。

    图3 复制登录指令
  7. 修改并上传镜像:
    1. 登录指令输入之后,使用下列示例命令,以下命令二选一:
      docker tag {image_url_name} <镜像仓库地址>/<组织名称>/<镜像名称>:<版本名称>

      参数说明:

      • {image_url_name}:基础镜像地址DockerFile制作训练镜像小节中的镜像名称
      • <镜像仓库地址>:可在SWR控制台上查询,容器镜像服务中登录指令末尾的域名即为镜像仓库地址。
      • <组织名称>:创建镜像组织中设置,可在SWR页面的组织管理中自行查看
      • <镜像名称>:<版本名称>:定义镜像名称。示例:pytorch_2_3_ascend:20241212
    2. 上传镜像至镜像仓库:
      docker push <镜像仓库地址>/<组织名称>/<镜像名称>:<版本名称>
  8. 上传完之后可以在SWR页面,我的镜像中看到新上传的镜像。
    图4 查看上传的镜像

相关文档