部署容器镜像

当宿主机环境为CentOS系统时,由于CentOS的安全模块selinux默认开启,会导致挂载到容器的本地目录没有执行权限,因此需要临时关闭selinux,命令为:su -c "setenforce 0"。完成相关业务后再重新开启selinux,命令为: su -c "setenforce 1"。
- 请执行如下命令基于新镜像运行一个容器。
docker run -itd -e ASCEND_VISIBLE_DEVICES=xxx --pids-limit 409600 image-name:tag /bin/bash
命令示例:
docker run -itd -e ASCEND_VISIBLE_DEVICES=0 ascend-cann:8.0.RC2-ubuntu /bin/bash
表1 参数解释 参数
参数说明
ASCEND_VISIBLE_DEVICES=xxx
使用ASCEND_VISIBLE_DEVICES指定被挂载至容器中的NPU设备(用户可执行ls /dev/ | grep davinci*命令查询宿主机的NPU设备),使用设备序号指定设备,支持单个和范围指定且支持混用。例如:
--pids-limit 409600
当host宿主机系统为CentOS和BC-linux时,docker内的线程数最大为4092,无法满足训练要求,启动容器时需要添加该参数以配置CentOS/BC-linux下docker的最大线程。
image-name:tag
镜像名称与标签,填写已构建的CANN容器镜像(如“ascend-cann:cann-openeuler”)。
执行该命令后,如果显示容器ID(本例为“1dc80f32c263”),则表示已经启动该容器。
执行如下命令进入容器。
docker exec -it 容器ID /bin/bash
示例命令:
docker exec -it 1dc80f32c263 /bin/bash
回显以下信息,表示成功进入该容器。
uername@1dc80f32c263:~$
如果用户在宿主机创建了模型文件目录(用于容器中调用模型进行训练),可以在启动容器时挂载模型目录(如“/data/model ”),命令示例如下所示:
docker run -itd -e ASCEND_VISIBLE_DEVICES=0 -v /data/model:/data/model ascend-tensorflow:8.0.RC2-ubuntu18.04-arm64 /bin/bash
- 容器启动后,执行以下命令查看当前docker容器中可以使用的davinci设备:
ls /dev/ | grep davinci*
命令执行情况如下图。
其中:
- davinci_manager为管理模块的字符设备节点。
- davinci0为该容器使用的davinci设备。
- 配置环境变量,请用户根据set_env.sh的实际安装路径进行替换。
source CANN软件包实际安装路径/set_env.sh
父主题: 方式二:自行构建并部署容器镜像