安装特定的docker版本18.09.2,安装对应的nvidia-docker,实现在docker镜像中能使用gpu
关于docker的操作命令可以参考下一篇文章竞赛-003 docker的使用
环境以及版本
ubuntu16.04,内核4.4.0-142-generic
uname -r
Docker需要64的操作系统。此外你的kernel内核至少要在3.10版本之上,大于这个版本即可安装
sudo apt-get remove docker docker-engine docker.io containerd runc
删除镜像的话就删除/var/lib/docker文件夹下的文件
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 -
密钥是:
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
在repo中列出可用版本,然后选择并安装:
apt-cache madison docker-ce
可以看到仓库中可用的包
使用第二列中的版本字符串安装特定版本5:18.09.5-3-0-ubuntu-xenial
sudo apt-get install docker-ce=5:18.09.5~3-0~ubuntu-xenial docker-ce-cli=5:18.09.5~3-0~ubuntu-xenial containerd.io
sudo docker run hello-world
上面的步骤是docker的常规安装,下面要做的是安装nvidia-docker,这个插件使得我们能够在docker里面调用GPU,实行训练,安装步骤如下:
如果安装了nvidia-docker 1.0:我们需要删除它和所有现有的GPU容器
docker volume ls -q -f driver = nvidia-docker | xargs -r -I {} -n1 docker ps -q -a -f volume = {} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
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
apt-get madison nvidia2 nvidia-container-runtime
sudo apt-get install -y nvidia-docker2=2.0.3+docker18.09.5-3 nvidia-container-runtime=2.0.0+docker18.09.5-3 -y
sudo pkill -SIGHUP dockerd
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
关于docker的操作命令可以参考下一篇文章竞赛-003 docker的使用
https://docs.docker.com/install/linux/docker-ce/ubuntu/
https://github.com/NVIDIA/nvidia-docker
sub-process /usr/bin/dpkg returned an error code(1):
https://blog.csdn.net/Ropai/article/details/27171687
https://blog.csdn.net/u010426270/article/details/52028620
Docker:Failed to start docker.service: Unit docker.service is masked.
http://www.php.cn/blog/detail/6102.html