本文档基于镜像树结构来构建容器镜像,具有可扩展性。
镜像树示意图如图1所示。
镜像名 |
说明 |
---|---|
ascendbase-train |
安装系统组件及python第三方依赖等。 |
ascend-train |
安装深度学习引擎包nnae(支持离线推理、在线推理、训练)等。 |
ascend-tensorflow |
安装框架插件包tfplugin和Tensorflow框架。 |
由于Docker Hub中不存在openeuler 20.03的镜像,如果需要可参考以下网址自行获取:
获取链接:ascend-docker-image
cd Dockerfile/latest/common/ascendbase-train/{os}-{arch}
其中{os}表示容器镜像操作系统版本,{arch}表示架构,请根据实际情况替换。若容器镜像OS为Debian 10.0,操作请参见构建容器镜像(Debian 10.0)。
文件 |
说明 |
获取方法 |
---|---|---|
Dockerfile |
制作镜像需要。 |
已存在于当前目录。 用户可根据实际需要自行定制。 |
libstdc++.so.6.0.24 |
动态库文件。 |
仅当容器镜像OS为CentOS时需要准备libstdc++.so.6.0.24文件。 可以通过find命令查询libstdc++.so.6.0.24文件所在路径,然后从host拷贝。 |
docker build -t ascendbase-train:base_TAG .
注意不要遗漏命令结尾的“.”,命令解释如表3所示。构建镜像时,如果在pip安装python依赖包时出现超时或证书错误,请修改Dockerfile更换pip源。
如需在此步配置系统网络代理,命令参考如下:
docker build -t ascendbase-train:base_TAG --build-arg http_proxy=http://proxyserverip:port --build-arg https_proxy=http://proxyserverip:port .
其中proxyserverip为代理服务器的ip地址,port为端口。
参数 |
说明 |
---|---|
ascendbase-train:base_TAG |
镜像名称与标签,建议将base_TAG命名为“日期-容器OS-架构”(例如“20210106-ubuntu18.04-arm64”)。 |
当出现“Successfully built xxx”表示镜像构建成功。
cd Dockerfile/latest/common/ascend-train
软件或文件 |
说明 |
获取方法 |
---|---|---|
Ascend-cann-nnae_{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”文件。 以实际路径为准。 |
docker build -t ascend-train:train_TAG --build-arg NNAE_PKG=nnae-name --build-arg BASE_VERSION=base_TAG .
注意不要遗漏命令结尾的“.”,命令解释如表5所示。
参数 |
说明 |
---|---|
ascend-train:train_TAG |
镜像名称与标签,建议将train_TAG命名为“软件包版本-容器OS-架构”(例如“5.0.rc2-ubuntu18.04-arm64”)。 |
--build-arg |
指定dockerfile文件内的参数。 |
NNAE_PKG |
nnae-name为深度学习引擎包名称,注意不要遗漏文件后缀,请用户自行更换。 |
BASE_VERSION |
base_TAG为3.c中设置的镜像标签。 |
当出现“Successfully built xxx”表示镜像构建成功。
cd Dockerfile/latest/common/ascend-tensorflow
软件或文件 |
说明 |
获取方法 |
---|---|---|
Ascend-cann-tfplugin_{version}_linux-{arch}.run |
框架插件包。 其中{version}表示软件包版本,{arch}表示架构。 |
|
tensorflow-1.15.0-cp37-cp37m-*.whl |
tensorflow框架whl包 |
aarch64架构:可参考《CANN 软件安装指南》中“安装深度学习框架”章节。 x86_64架构:无需准备 |
Dockerfile |
制作镜像需要。 |
已存在于当前目录。 用户可根据实际需要自行定制。 |
ascend_install.info |
软件包安装日志文件 |
从host拷贝“/etc/ascend_install.info”文件。 以实际路径为准。请注意拷贝到当前目录后,将拷贝文件内的“UserName”和“UserGroup”这两行内容删除。 |
version.info |
driver包版本信息文件 |
从host拷贝“/usr/local/Ascend/driver/version.info”文件。 以实际路径为准。 |
# 注:centos7需激活SHELL,ubuntu18.04需注释 SHELL ["/usr/bin/scl", "enable", "devtoolset-7"]
编辑完成后,在键盘按Esc键退出编辑模式,并输入:wq!保存文件。
docker build -t ascend-tensorflow:tensorflow_TAG --build-arg TFPLUGIN_PKG=tfplugin-name --build-arg BASE_VERSION=train_TAG --build-arg TF_PKG=tensorflow-name .
注意不要遗漏命令结尾的“.”,命令解释如表7所示。
如需在此步配置系统网络代理,命令参考如下:
docker build -t ascend-tensorflow:tensorflow_TAG --build-arg TFPLUGIN_PKG=tfplugin-name --build-arg BASE_VERSION=train_TAG --build-arg TF_PKG=tensorflow-name --build-arg http_proxy=http://proxyserverip:port --build-arg https_proxy=http://proxyserverip:port .
其中proxyserverip为代理服务器的ip地址,port为端口。
参数 |
说明 |
---|---|
ascend-tensorflow:tensorflow_TAG |
镜像名称与标签,建议将tensorflow_TAG命名为“软件包版本-容器OS-架构”(例如“5.0.rc2-ubuntu18.04-arm64”)。 |
--build-arg |
指定dockerfile文件内的参数。 |
TFPLUGIN_PKG |
tfplugin-name为框架插件包名称,注意不要遗漏文件后缀,请用户自行更换。 |
BASE_VERSION |
train_TAG为4.c中设置的镜像标签。 |
TF_PKG |
tensorflow-name为tensorflow框架whl包名,仅arm64架构时需输入此参数。 |
当出现“Successfully built xxx”表示镜像构建成功。
docker images