1、安装Docker
参考:https://docs.docker.com/engine/install/ubuntu/
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
2、拉镜像
# 镜像是 ubuntu16.04,自带 cuda10.2 和 cudnn7。
sudo docker pull nvidia/cuda:10.2-cudnn7-devel-ubuntu16.04
# 查看镜像
sudo docker images
3、加入Docker对nvidia的支持
参考:https://github.com/NVIDIA/nvidia-docker
# Add the package repositories
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-container-toolkit
sudo systemctl restart docker
4、运行镜像并共享主机文件夹
# -it 表示建好容器后直接进入。
# --gpus all 表示在容器中可见所有GPU。
# -v /data0/share:/host_share 表示共享主机文件夹 /data0/share 和 容器中的文件夹 /host_share(不需要事先建好)。
# 5109 是用 docker images 命令看到的镜像ID 前4位。
sudo docker run -it --gpus all -v /data0/share:/host_share 5109
5、修改容器中的镜像
在容器中做各种下载、安装、编译等等。
6、退出容器并提交修改
# exit 或 ctrl+D 退出容器。
# 查看容器ID。
sudo docker ps -a
# 保存容器中的修改到新的镜像,-a后是作者,-m后是说明,1ab8 是容器ID前4位,nvcaffe_20200815 是新镜像仓库名。
sudo docker commit -a "wujp" -m "nvcaffe_cuda10.2_cudnn7_20200815" 1ab8 nvcaffe_20200815
7、保存镜像到文件
sudo docker save -o my_docker.tar nvcaffe_20200815
8、加载镜像从文件
sudo docker load --input my_docker.tar