一.Docker环境配置
1.简单介绍
–docker容器技术–。
简单理解:Anaconda用于隔离不同的python环境;docker可以理解成在你的机器里面安装了一个独立的系统,因此它可以隔离不同的CUDA环境,还有着独立的文件系统,防止别人删掉你的实验和环境等。
镜像(images)的意思就是静态的镜像文件;
容器(container)就是一个基于镜像的活跃着的系统,可以操作的实例,我们可以进去跑代码。
2.安装nvidia-docker
- 前置条件:你得有一张显卡。
- docker
sudo apt-get install docker
。查看是否安装好:docker
- Nvidia Driver. NVIDIA驱动官网。查看是否安装好:
nvidia-smi
- 接下来安装
nvidia-docker
。
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
重启一下docker- 接下来你就可以愉快的使用nvidia-docker了
3.拉取环境镜像
在此之前,我们需要了解一下docker hub的一些仓库地址。在下方给出:
Nvidia/cuda官方docker hub
PyTorch官方docker hub
基于此,我们可以去拉取官方仓库,可以在tag当中搜索我们所需要的版本,一般是选择devel版本,其中包含了C++/CUDA编译环境、视频解码、渲染等,会比较全面些。然后在docker镜像去配置我们的深度学习环境。就像下面这样:(因为DSP-SLAM的github上要求的cuda版本为11.3,所以最好跟官方一致)
sudo docker pull nvidia/cuda:11.3.1-cudnn8-devel-ubuntu18.04
如果想删除多余的docker image,可以使用指令
sudo docker rmi -f <id>
2.创建容器
sudo docker run -itd --runtime=nvidia --gpus all --name dspslam -v /home/lm/docker/dspslam:/home/lm/docker/dspslam --net=host --env="DISPLAY" --volume="$HOME/.Xauthority:/root/.Xauthority:rw" -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics -e NVIDIA_VISIBLE_DEVICES=all --privileged=true 9ac63d269265 /bin/bash
这个参数有点多,依次解释一下:
- -it必备 d表示在背景里运行;
- -v 磁盘挂载 本地绝对路径:容器的绝对路径;
- --name 给你的container取个响亮的芳名;
- --runtime 表示启用nvidi