制作容器镜像
- 切换root用户,执行以下步骤准备Dockerfile文件。
- 进入镜像打包文件所在目录,执行以下命令创建dockerfile文件(文件名示例“Dockerfile”)。
vim Dockerfile
- 参见编写说明编写,写入后执行:wq命令保存内容。
- 请确保制作过程中需要的文件均符合用户所在组织的安全要求。
- 进入镜像打包文件所在目录,执行以下命令创建dockerfile文件(文件名示例“Dockerfile”)。
- 进入软件包所在目录,执行以下命令,构建容器镜像,注意不要遗漏命令结尾的“.”。
docker build --no-cache=true -t 镜像名:镜像tag .
例如:
docker build --no-cache=true -t cfs-infer:v1 .
命令解释如所表1示。
当出现“Successfully built xxx”表示镜像构建成功。
- 构建完成后,执行以下命令查看镜像信息。
docker images
显示示例:
REPOSITORY TAG IMAGE ID CREATED SIZE cfs-infer v1 fffbd83be42a X minutes ago XXXMB
- (可选)若需要将镜像导入其他设备运行,可执行以下命令导出镜像。
docker save -o cfs-infer.tar cfs-infer:v1
“-o”:导出的镜像压缩包名称,例如:cfs-infer.tar。
“ cfs-infer:v1”:镜像名_系统架构:镜像tag。
编写说明
Dockerfile编写示例。
# 基础推理镜像 FROM ${基础镜像名称} # 根据实际业务选择对应镜像,需保证包含推理业务所需的基本库 USER root RUN useradd -d /home/hwMindX -u uid -m -s /usr/sbin/nologin hwMindX && \ # 若本身镜像内包含此用户,则无需创建 chmod 700 /home/HwHiAiUser && \ mkdir /run/secrets/ && \ chown HwHiAiUser:HwHiAiUser /run/secrets && \ chmod 700 /run/secrets && \ mkdir /job && \ chown HwHiAiUser:HwHiAiUser -R /job && \ echo 'umask 077' >> /etc/profile # 将镜像打包文件拷贝至/job COPY --chown=HwHiAiUser:HwHiAiUser . /job/ WORKDIR /job RUN tar -zxvf openssl-{version}.tar.gz WORKDIR openssl-{version} RUN ./config && \ make && \ make install # HwHiAiUser is used as the default user of the container USER HwHiAiUser ENV LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH WORKDIR /job

- 驱动默认安装的用户与用户组为HwHiAiUser用户及其用户组,制作镜像时需保证镜像中用户在HwHiAiUser用户的用户组内。
- 若推理容器运行用户为root用户,该场景下权限控制可能存在安全风险,容器内不建议使用root用户进行推理。
- 若推理容器运行用户必须为root用户,则驱动安装时请使用--install-for-all参数,且安装后所有用户拥有权限,此参数存在使用安全风险,详细内容请参见驱动与固件安装指导。
- uid请用户根据实际内容填写。
父主题: 边缘场景容器化推理