构建容器镜像
简介
本文档基于镜像树结构来构建容器镜像,具有可扩展性。
推理镜像树示意图如图1所示。
镜像名 |
说明 |
---|---|
ascendbase-infer |
安装系统组件等。 |
ascend-infer |
安装离线推理引擎包nnrt(仅支持离线推理)等。 |
操作步骤
- 登录服务器。
- 获取Dockerfile文件。
- 构建镜像ascendbase-infer。
- 进入Dockerfile所在路径(请根据实际路径修改)。
cd Dockerfile/latest/common/ascendbase-infer/{os}-{arch}
其中{os}表示容器镜像操作系统版本,{arch}表示架构,请根据实际情况替换。
- 请在当前目录准备以下文件。
表2 所需文件 文件
说明
获取方法
Dockerfile
制作镜像需要。
已存在于当前目录。
用户可根据实际需要自行定制。
EulerOS.repo
yum源配置文件。
仅容器镜像OS为EulerOS2.8时需准备。
libstdc++.so.6.0.24
动态库文件。
仅当容器镜像OS为CentOS时需要准备libstdc++.so.6.0.24文件。
可以通过find命令查询libstdc++.so.6.0.24文件所在路径,然后从host拷贝。
- 在当前目录执行以下命令构建镜像ascendbase-infer。
docker build -t ascendbase-infer:base_TAG .
注意不要遗漏命令结尾的“.”,命令解释如表3所示。
如需在此步配置系统网络代理,命令参考如下:
docker build -t ascendbase-infer:base_TAG --build-arg http_proxy=http://proxyserverip:port --build-arg https_proxy=http://proxyserverip:port .
其中proxyserverip为代理服务器的ip地址,port为端口。
表3 命令参数说明 参数
说明
ascendbase-infer:base_TAG
镜像名称与标签,建议将base_TAG命名为“日期-容器OS-架构”(例如“20210106-ubuntu18.04-arm64”)。
当出现“Successfully built xxx”表示镜像构建成功。
- 进入Dockerfile所在路径(请根据实际路径修改)。
- 基于镜像ascendbase-infer,构建镜像ascend-infer。
- 进入Dockerfile所在路径(请根据实际路径修改)。
cd Dockerfile/latest/common/ascend-infer
- 请在当前目录准备以下软件包和相关文件。
表4 所需软件或文件 软件或文件
说明
获取方法
Ascend-cann-nnrt_{version}_linux-{arch}.run
离线推理引擎包。
其中{version}表示软件包版本,{arch}表示架构。
Dockerfile
制作镜像需要。
已存在于当前目录。
用户可根据实际需要自行定制。
ascend_install.info
软件包安装日志文件
从host拷贝“/etc/ascend_install.info”文件。
以实际路径为准。请注意拷贝到当前目录后,将拷贝文件内的“UserName”和“UserGroup”这两行内容删除。
version.info
driver包版本信息文件
从host拷贝“/usr/local/Ascend/driver/version.info”文件。
以实际路径为准。
- 在当前目录执行以下命令构建镜像ascend-infer。
docker build -t ascend-infer:infer_TAG --build-arg NNRT_PKG=nnrt-name --build-arg BASE_VERSION=base_TAG --build-arg ARCH={arch} .
注意不要遗漏命令结尾的“.”,命令解释如表5所示。
表5 命令参数说明 参数
说明
ascend-infer:infer_TAG
镜像名称与标签,建议将infer_TAG命名为“软件包版本-容器OS-架构”(例如“5.0.rc2-ubuntu18.04-arm64”)。
--build-arg
指定dockerfile文件内的参数。
NNRT_PKG
nnrt-name为离线推理引擎包名称,注意不要遗漏文件后缀,请用户自行更换。
BASE_VERSION
base_TAG为3.c中设置的镜像标签。
ARCH
{arch}表示架构,请根据实际替换(arm64/x86_64)。
当出现“Successfully built xxx”表示镜像构建成功。
- 进入Dockerfile所在路径(请根据实际路径修改)。
- 构建完成后,执行以下命令查看镜像信息。
docker images