默认的Docker环境不支持GPU,需要安装nvidia-docker的环境。
环境:
Ubuntu 16.04 LTS
Nvidia Driver Version: 396.26
这里以安装docker-18.0.6-ce为例,打开https://docs.docker.com/install/ 可以看到详细教程,主要是:
卸载旧软件(没有可以忽略)
sudo apt-get remove docker docker-engine docker.io
以下载deb包安装为例,根据自己的Ubuntu版本
去https://download.docker.com/linux/ubuntu/dists/ 选择对应自己Ubuntu发行版的源(这里我的是16.04 LTS,代号Xenial),docker-ce的安装包就是https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/
浏览器下载即可,也可以在bash用wget下载
wget https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_18.06.0~ce~3-0~ubuntu_amd64.deb
使用dpkg安装即可
sudo dpkg -i docker-ce_18.06.0\~ce\~3-0\~ubuntu_amd64.deb
sudo systemctl start docker
sudo docker -v
每次使用docker都需要sudo很麻烦,如何省掉这一步可以参考https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user
更换docker源
创建或者修改 /etc/docker/daemon.json文件
sudo vim /etc/docker/daemon.json #sudo vim 没有对应文件会自动创建
修改为如下形式:
{
"registry-mirrors": ["http://hub-mirror.c.163.com"],
"insecure-registries": []
}
这里我用的是网易源,可以用豆瓣或者中科大等源代替
重启docker
sudo systemctl restart docker
至此docker安装完成
完整安装方法在https://github.com/NVIDIA/nvidia-docker ,注意实机需要正确安装驱动,可以看
[Ubuntu]:安装&卸载NVIDIA CUDA及驱动(深度学习)
# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containersdocker 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
# Add the package repositories
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
# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
安装完成后,使用nvidia-docker启动cuDNN环境即可,docker会从docker源获取指定tag的cuDNN环境,可以根据需要选择对应版本,详情可以查看(https://hub.docker.com/r/nvidia/cuda/)
使用docker pull拉取需要的镜像,这里以CUDA 9.0为例,runtime只包含运行时环境,devel会有CUDA Toolkit集成在内,方便开发者的使用
sudo docker pull nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04
sudo nvidia-docker run -it nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04
就可以进入带完整CUDA 9.0 + cuDNN7 + ubuntu16.04的虚机环境了
,可以在此基础上继续安装主流深度学习框架,比如paddlepaddle、pyTorch、Tensoflow等等。
关于docker的使用入门可以查阅官方相关文档。
欢迎去我的博客参观