制作容器镜像(可选)
- 执行以下步骤准备Dockerfile文件。
- 进入镜像打包文件所在目录,执行以下命令创建dockerfile文件(文件名示例“Dockerfile”)。
vim Dockerfile
- 参见1.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 ${基础镜像名称}
RUN useradd -d /home/hwMindX -u uid -m -s /usr/sbin/nologin hwMindX && \
usermod root -s /usr/sbin/nologin && \
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 && \
apt update && apt-get install libssl1.1 -y && \
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参数。
父主题: 边缘场景容器化推理