当宿主机环境为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
参数 |
参数说明 |
---|---|
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
ls /dev/ | grep davinci*
命令执行情况如下图。
其中:
source CANN软件包实际安装路径/set_env.sh