制作容器镜像(可选)

  1. 执行以下步骤准备Dockerfile文件。

    1. 进入镜像打包文件所在目录,执行以下命令创建dockerfile文件(文件名示例“Dockerfile”)。

      vim Dockerfile

    2. 参见1.Dockerfile编写示例。编写,写入后执行:wq命令保存内容。
    3. 请确保制作过程中需要的文件均符合用户所在组织的安全要求。

  2. 进入已准备文件的所在目录,执行以下命令,构建容器镜像,注意不要遗漏命令结尾的“.”

    docker build --no-cache=true -t 镜像名_系统架构:镜像tag .

    例如:

    docker build --no-cache=true -t cfs-infer:v1 .

    命令解释如所表1示。

    表1 命令参数说明

    参数

    说明

    -t

    指定镜像名称。

    镜像名_系统架构:镜像tag

    镜像名称与标签,请用户根据实际情况写入。

    当出现“Successfully built xxx”表示镜像构建成功。

  3. 构建完成后,执行以下命令查看镜像信息。

    docker images

    显示示例:

    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    cfs-infer           v1                  fffbd83be42a        X minutes ago       XXXMB

  4. (可选)若需要将镜像导入其他设备运行,可执行以下命令导出镜像。

    docker save -o cfs-infer.tar cfs-infer:v1

    “-o”:导出的镜像压缩包名称,例如:cfs-infer.tar。

    “ cfs-infer:v1”镜像名_系统架构:镜像tag

编写说明

Dockerfile编写示例。
# 基础推理镜像 	
FROM ${基础镜像名称} 

RUN  chmod 700 /home/hwMindX && \
    mkdir /run/secrets/  && \
    chown hwMindX:hwMindX /run/secrets  && \
    chmod 700 /run/secrets && \
    mkdir /job && \
    chown hwMindX:hwMindX -R /job && \
    echo 'umask 077' >> /etc/profile && \
    echo 'source /etc/profile' >> /home/hwMindX/.bashrc

# 将镜像打包文件拷贝至/job
COPY --chown=hwMindX:hwMindX ./job /job
COPY --chown=hwMindX:hwMindX ./secrets  /run/secrets

# hwMindX is used as the default user of the container
USER hwMindX
WORKDIR /job
ENV LD_LIBRARY_PATH=/job/crypto_fs/lib:$LD_LIBRARY_PATH
ENV PSK_KEY=${ai-tool加密工具生成的预共享密钥口令密文}
ENV CERT_KEY=${ai-tool加密工具生成的CFS证书口令密文}
  • 驱动默认安装的用户与用户组为HwHiAiUser用户及其用户组,制作镜像时需保证镜像中用户在HwHiAiUser用户的用户组内。
  • 若推理容器运行用户为root用户,该场景下权限控制可能存在安全风险,容器内不建议使用root用户进行推理。
  • 若推理容器运行用户必须为root用户,则驱动安装时请使用--install-for-all参数,且安装后所有用户拥有权限,此参数存在使用安全风险,详细内容请参见驱动与固件安装指导。
  • 当用户使用自制镜像时需要配置ENV PSK_KEY与ENV CERT_KEY参数。