使用docker 进行深度学习环境配置

在ubuntu下使用docker 进行深度学习环境配置

本文步骤在ubuntu16.04和18.04下经过验证。

docker安装

基于GPU进行深度学习环境的配置需要提前安装好GPU显卡驱动,对于NVIDIA的卡可用下面的命令检测,有输出说明可使用GPU。

lspci -vv | grep -i nvidia

安装NVIDIA Container Runtime

在docker19.03版本后,不再需要单独安装nvidia docker2,只需要安装NVIDIA Container Runtime,方便了很多。在docker安装前后均可安装。
依次执行下列命令,便可完成NVIDIA Container Runtime的安装。

curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update

验证安装是否成功,执行:

which nvidia-container-runtime-hook

输出:

/usr/bin/nvidia-container-runtime-hook

即为成功。

安装docker

先执行

sudo apt-get update # 先更新一下软件源库信息
sudo apt-get install    apt-transport-https  ca-certificates    curl   software-properties-common

添加 Docker 官方的 GPG 密钥(为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

阿里云仓库

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

安装docker

sudo apt-get update
sudo apt-get install docker-ce # 安装最新版的docker

检查docker是否安装成功

docker --version# 查看安装的docker版本

运行docker测试

docker run hello-world

卸载docker

有时需要卸载重装,但删除不干净,可以通过查找相关的软件包,并依次删除:
查询相关软件包

dpkg -l | grep docker

删除对应的包

sudo apt remove --purge docker.io

常见问题、报错等

1、无法使用GPU

错误:could not select device driver “” with capabilities: [[gpu]]
尝试重启docker服务

sudo systemctl restart docker
2、无权限

错误:Docker"Got permission denied while trying to connect to the Docker daemon socket"
原因:docker服务需要root权限
方法:

sudo groupadd docker #添加docker用户组
sudo gpasswd -a $XXX docker #检测当前用户是否已经在docker用户组中,其中XXX为用户名,例如我的,liangll
sudo gpasswd -a $USER docker #将当前用户添加至docker用户组
newgrp docker #更新docker用户组
sudo systemctl restart docker #重启
3、速度慢

docker命令联网或pull 镜像时速度太慢
由于官方服务器在国外,因此可通过阿里云进行容器镜像加速。
可参考本文中镜像加速部分。

docker重启方式

systemctl 方式
sudo systemctl daemon-reload #守护进程重启
sudo systemctl restart docker #重启docker服务
sudo systemctl stop docker #关闭docker
service 方式
sudo service docker restart #重启docker服务
sudo service docker stop #关闭docker

离线安装docker

可参考这篇文章,亲测可用。

pytorch使用

pytorch镜像位置https://hub.docker.com/r/pytorch/pytorch/tags
拉取特定版本镜像:

docker pull pytorch/pytorch:1.5-cuda10.1-cudnn7-runtime
docker pull pytorch/pytorch:1.5-cuda10.1-cudnn7-devel

上面两个版本区别参见:这里
在pytorch镜像基础上创建支持GPU容器的命令如下:

docker run -p [port1]:22 -p [port2]:8888 --gpus all –v [dir]:/workplace -td pytorch/pytorch:1.5-cuda10.1-cudnn7-runtime bash

其中,-p为端口映射,dockers容器无图像界面,且外部不通过宿主机无法直接进入容器,因此需要端口映射来实现直接访问。port1为宿主机的任意未占用端口,用来映射容器内部ssh服务的22端口,port2可用来映射容器内jupyter notebook的端口,也可根据需要进行其他各类端口的映射。

–gpus all为指定宿主机所有GPU可供容器使用,其他映射方式:

docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi # 使用两个GPU
docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi # 指定GPU运行
docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:9.0-base nvidia-smi

-v为挂载宿主机的目录,由于容器与宿主机相互隔离,不挂载的话,每次文件交互均需执行文件拷贝命令,根据需要对本地的绝对路径 dir进行映射。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值