docker深度学习环境部署:docker+nvidia-docker构建tensorflow/pytorch/mxnet镜像

1 篇文章 0 订阅
1 篇文章 0 订阅

前面小C已经给出了很多深度学习环境的安装教程,但是每次来个新机器都要重新装一遍,既枯燥又耗时,下面介绍docker方法:一次构建,多次运行.并且保证运行环境和开发环境保持一致.更多的docker知识请搜索度娘.下面介绍用docker构建深度学习环境镜像.
宿主机已安装:ubuntu16.04LTS, nvidia-390.59显卡驱动

一、安装 Docker

参考官网 https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get install docker-ce
docker -v     //查看是否安装成功

二、安装 Nvidia-docker

参考官网 https://github.com/NVIDIA/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
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
nvidia-docker -v    //查看是否安装成功

三、拉取nvidia/cuda官方镜像

sudo docker pull nvidia/cuda:9.0-base

NVIDIA官方提供的docker镜像nvidia/cuda,里面已经编译安装了CUDA,但需完善.注意:这里的cuda版本要跟宿主机显卡驱动匹配.

sudo nvidia-docker run -it  nvidia/cuda:9.0-base   //生成容器

四、在容器里安装深度学习环境

  1. 更换清华源
    请参考 https://blog.csdn.net/Carina_Cao/article/details/91376042
  2. 安装必要的工具
    因为镜像比较小,一些必要的工具通常没有.
    apt install vim git
    
  3. 完善cuda镜像
    安装完整的cuda-toolkit,官方的镜像不完整,这一步很关键.然后安装四个补丁.
    apt install cuda-toolkit-9-0
    sh cuda_9.0.176.1_linux.run
    sh cuda_9.0.176.2_linux.run
    sh cuda_9.0.176.3_linux.run
    sh cuda_9.0.176.4_linux.run
    
  4. 安装cudnn,python,tensorflow,mxnet
    另起终端,查看容器信息.
    sudo docker ps  //查看正在运行的容器
    sudo docker ps -a   //查看容器历史及状态
    
    把宿主机的以上安装包都拷贝到容器内,当然也可以选择在线安装.
    sudo docker cp (宿主机安装包路径) (容器id或name):/(容器内的存放路径)
    
    在容器内安装cudnn,python,tensorflow,mxnet, 安装方式参考:
    https://blog.csdn.net/Carina_Cao/article/details/78875981
    https://blog.csdn.net/Carina_Cao/article/details/90210626
    exit   //退出容器
    
  5. 保存镜像
    sudo docker commit (容器id前四位) (镜像repository):(镜像tag)   //将刚才的容器保存成镜像,tag重新起名
    
    至此,深度学习镜像就构建好了.当我们想在其他机器上使用时(只需要装好系统,显卡驱动,docker和nvidia-docker),打个包传过去,解压就可以了.
    sudo docker save -o *.tar (镜像repository):(镜像tag)      //打包到宿主机,该包可以像文件一样传递
    sudo docker load --input *.tar        //解压到本地镜像库
    
    如果想在已保存好的镜像里继续安装,同样开启容器,安装好退出,再保存成镜像,就像盖大楼一样一层一层往上盖.这就是docker的优势.
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值