6.通过docker配置深度学习环境
0.初始条件
确保本地环境安装完成nvidia驱动、docker和nvidia-docker
docker命令大全链接(https://www.runoob.com/docker/docker-command-manual.html)
1.启动docker服务
#运行docker
systemctl start docker
# 加入开机启动
systemctl enable docker
# 查看状态
systemctl status docker
2.启动nvidia-docker服务
#运行nvidia-docker
systemctl start nvidia-docker
#加入开机启动 systemctl enable nvidia-docker
#查看状态 systemctl status nvidia-docker
3.启动docker容器
docker run -it --name=gpus_ai_rust -v /home/wangjun/data:/root/data_container --gpus all nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 /bin/bash
根据nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04镜像创建名为gpus_ai_rust的交互式容器,将本地目录/home/wangjun/data映射到容器目录/root/data_container,建立互联,--gpus实现以gpu模式运行。
其他操作的官方范例
docker run --help | grep -i gpus #验证下--gpus选项是否有效 docker run -it --rm --gpus all ubuntu bash #运行一个ubuntu镜像生成容器,该容器可以使用所有的GPU卡。 进入该容器后,输入: nvidia-smi 可以看到,GPU卡的情况了。 还有官方给的其他命令,自行测试吧: #### Test nvidia-smi with the latest official CUDA image docker run --gpus all nvidia/cuda:10.0-base nvidia-smi # Start a GPU enabled container on two GPUs docker run --gpus 2 nvidia/cuda:10.0-base nvidia-smi # Starting a GPU enabled container on specific GPUs docker run --gpus '"device=1,2"' nvidia/cuda:10.0-base nvidia-smi docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:10.0-base nvidia-smi # Specifying a capability (graphics, compute, ...) for my container # Note this is rarely if ever used this way docker run --gpus all,capabilities=utility nvidia/cuda:10.0-base nvidia-smi
4.在容器中输入 nvidia-smi 确认nvidia驱动运行正常,将本地项目移入容器并调试完毕。
5.基于该容器使用docker commit
命令构建新的镜像
docker commit -m "rust detection" -a "wangjun" 8ecdc444ad9a test_ai_rust:v1
参数解释:上面-m
选项指定了新镜像的提交信息,-a
标注作者信息,8ecdc444ad9a是容器ID,test_ai_rust:v1是指定的新镜像名称。
6.使用 docker save 命令根据 ID 将镜像保存成一个文件
docker save -o test_ai_rust.tar test_ai_rust:v1
7.使用 docker load 命令则可将这个镜像文件载入进来
docker load < test_ai_rust.tar