Dockerfile创建深度学习环境-ubuntu16.04+cuda8+cudnn6+miniconda

前言

镜像是多层存储,每一层是在前一层的基础上进行的修改;容器同样也是多层存储,是在以镜像为基础层,在其基础上加一层作为容器运行时的存储层。当我们运行一个容器的时候(如果不使用卷的话),我们做的任何文件修改都会被记录于容器存储层里

一、镜像定制的方式介绍

1. 使用commit方式创建

  • commit方式创建镜像的方法见之前的博客Docker容器安装Anaconda
  • 优点
    • 交互式定制镜像,修改方便
  • 缺点
    • 维护困难。除了制作镜像的人知道执行过什么命令、怎么生成的镜像,别人根本无从得知
    • 让镜像更加臃肿。由于镜像所使用的分层存储的概念,除当前层外,任何修改的结果仅仅是在当前层进行标记、添加、修改,而不会改动上一层。

2. 使用Dockerfile方式创建

  • Dockerfile是一个文本文件,其内包含了一条条指令,每条指令构建一层
  • 有关指令使用见 指令详解

二、Dockerfile定制镜像前的准备工作

  • 本地主机带有显卡
  • 本地主机已安装docker,未安装见之前博客docker安装
  • 本地主机已安装nvidia-docker,未安装见之前博客nvidia-docker安装

三、 Dockerfile定制镜像

  1. 创建文件夹,并在文件夹中创建Dockerfile

    mkdir myenv
    cd myenv
    touch Dockerfile
    
  2. 将已下载好的Miniconda3-4.7.12.1-Linux-x86_64.sh等相关文件拷贝到 myenv 文件夹下

  3. 在Dockerfile中添加一下内容

    # Download ubuntu16.04 with cuda and cudnn
    FROM nvidia/cuda:8.0-cudnn6-devel-ubuntu16.04 as ubuntu
    
    # Install miniconda
    COPY Miniconda3-4.7.12.1-Linux-x86_64.sh /home/
    RUN bash /home/Miniconda3-4.7.12.1-Linux-x86_64.sh -b -p /home/miniconda3 \
        && echo 'export PATH=$PATH:/home/miniconda3/bin' >>/root/.bashrc \
        && /bin/bash -c "source /root/.bashrc" \
        && rm -rf /home/Miniconda3-4.7.12.1-Linux-x86_64.sh
    
    # Activate the environment.
    ENV PATH $PATH:/home/miniconda3/bin
    
  4. 在myenv文件夹下打开一个终端,运行:

    # docker build -t 镜像名字:tag .
    docker build -t miniconda:v1.0 .
    
  5. 通过docker image ls查看创建的容器

注意:如果使用显卡,要使用 nvidia-docker run 或者 docker run --runtime=nvidia 创建容器,否则会出现问题。
补充:Dockerfile内容介绍
  1. 获取基础镜像。我拉取的是ubuntu16.04+cuda8+cudnn6,你们可以根据需求下载自己需要的基础镜像镜像网址

  2. 安装minconda。每一个 RUN 的行为,就新建立一层,在其上执行这些命令,执行结束后,commit 这一层的修改,构成新的镜像。所以尽量将命令写到一个RUN下面。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值