自建容器部署并推理

本章节介绍如何在边缘推理场景设备自建容器,上传镜像并进行解密操作。

  1. 将镜像压缩文件包导入推理场景设备。
  2. 执行以下命令在容器中导入镜像,请确保该镜像符合用户所在组织的安全要求。

    docker load < cfs-infer.tar

    “cfs-infer.tar”为用户的推理镜像名称。

  3. 启动容器,使用加密预共享密钥口令章节获取的ai-tool工具解密预共享密钥口令并调用crypto_fs解密模型文件并启动推理,以Altas 500pro设备为例。加粗命令请根据实际情况修改,使用带有entrypoint命令的镜像请参考FAQ使用具有entrypoint命令的镜像

    docker run -it \
     --env PSK_KEY=${ai-tool加密工具生成的预共享密钥口令密文} \
     --env CERT_KEY=${ai-tool加密工具生成的CFS证书口令密文} \
     --restart=on-failure:5 \
     --security-opt seccomp=seccomp_profile.json  \
     --device=/dev/fuse --net=aiguard  \
     --device=/dev/davinci0 \
     --device=/dev/davinci_manager \
     --device=/dev/devmm_svm \
     --device=/dev/hisi_hdc \
     -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
     -v ${挂载文件的根目录}/secrets:/run/secrets \ 
     -v ${挂载文件的根目录}/job:/job  \            
     --cpus=10 -c 512 -m 2048m [image_name]:[image_version]    \
    unshare --propagation unchanged -m -r /bin/bash -c 'export LD_LIBRARY_PATH=/job/crypto_fs/lib:$LD_LIBRARY_PATH;./ai-tool run ./crypto_fs/bin/crypto_fs  /job/encrypt /job/dec/  --cert_file=/job/cfs.pem --pri_key_file=/job/cfs.key --ca_file=/job/ca.pem  -p  "/job/dec/infer/sdk/infer_start_cfs.py" -K 10000 -k --port 2025'
    • docker命令参数:
      • --env:环境变量配置选项。当使用制作容器镜像(可选)步骤制作的镜像推理时无需配置该参数。
      • --security-opt:配置安全选项。
      • --restart:容器的重启策略,选择on-failure重启策略并限制次数为5。
      • -it:为-i和-t,打开STDIN,用于控制台交互;分配tty设备,该可以支持终端登录,默认为false。
      • --device:添加主机设备给容器,相当于设备直通。
      • -v,--volume:给容器挂载存储卷,挂载到容器的某个目录 。当使用制作容器镜像(可选)步骤制作的镜像推理时无需配置该参数。
      • --cpus:使用的cpu数量。
      • -c:允许使用的cpu份额。
      • -m:允许使用的内存限额。
      • --port:KMSAgent监听CFS的端口,默认为1024,使用批量配置工具的默认参数也为1024,此处参数值请与批量配置参数保持一致。
      • [image_name]:[image_version]:请根据镜像实际名称和版本号替换。

      如果用户需要将crypto_fs在容器中的日志持久化,可选择将crypto_fs日志对应的目录挂载进容器。