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

 

posted @ 2020-12-16 09:40  皮皮俊  阅读(135)  评论(0编辑  收藏  举报