深度学习开发环境-Docker镜像开发-含cuda-vnc-anaconda-vscode-beyondcompare

1 构建过程

可直接跳过,看使用方法。
dockerfile地址位于github,请整个clone。

前提

cuda10.1的镜像要求宿主机的dirver最小为418.39;cuda10.0的镜像要求宿主机的dirver最小为410.48
深度学习开发环境-Docker镜像开发-含cuda-vnc-anaconda-vscode-beyondcompare_第1张图片

在docker里面装cuda提示

在容器中装cuda+driver.run,docker机制不允许driver安装成功,只能使用宿主机driver;

在容器中只装cuda虽然可以成功,但是容器中的cuda调用不到宿主机中的dirver,缺少中间件;

只能以nvidia/cuda镜像为基础开发想要的docker镜像,nviadia/cuda几种类型:

  • base:从CUDA 9.0开始,包含部署预建CUDA应用程序的最低要求(libcudart)。如果要手动选择要安装的CUDA软件包,请使用此映像。【虽然自己装cuda,但也是nviadia/cuda镜像】
  • runtime:base通过添加CUDA工具包中的所有共享库来扩展图像。
    如果您具有使用多个CUDA库的预构建应用程序,请使用此映像。
  • devel:runtime通过添加编译器工具链,调试工具,标头和静态库来扩展图像。使用此映像可从源代码编译CUDA应用程序。

可以装个base版nviadia/cuda镜像,再利用conda装cuda,例如 conda install cudnn=7.6.5 cudatoolkit=10.0.130

2 lucky:cuda9.0-cudnn7.6.4-devel-ubuntu16.04-vnc

镜像Build

git clone https://github.com/luckyluckydadada/Lucky-docker.git
cd Lucky-docker 
docker build -t lucky:cuda9.0-cudnn7.6.4-devel-ubuntu16.04-vnc -f Dockerfile-cuda9.0 .

容器说明

1 默认已经开启vnc,webvnc,可自行修改~/.vnc/config配置和vncpasswd,默认lucky

2 已经配置好sources.list、.bashrc、.bash_aliase、.pip,位于~/bashrc,看情况使用

3 nvcc --version 【这才是docker里的cuda版本】;nvidia-smi【这是宿主机的cuda版本】;cat /usr/include/cudnn.h,nvidia/cuda的cudnn都不在/usr/local/cuda/目录

4 已经安装软件:vscode、bcompare、vim、git、gedit、gcc、cmake、anaconda

容器使用案例

nvidia-docker run --runtime=nvidia -u root -it \
       -p 30011:8888 -p 30012:6006 -p 30013:6901 -p 30014:5901 \
       --name 容器名1 \
       -v 本地挂载目录:/headless/ld \
       lucky:cuda9.0-cudnn7.6.4-devel-ubuntu16.04-vnc  /bin/bash

3 lucky:cuda10.0-cudnn7.6.5-devel-ubuntu18.04-vnc

镜像Build

git clone https://github.com/luckyluckydadada/Lucky-docker.git 
cd Lucky-docker
docker build -t lucky:cuda10.0-cudnn7.6.5-devel-ubuntu18.04-vnc -f Dockerfile-cuda10.0 .

容器说明

1 默认已经开启vnc,webvnc,可自行修改~/.vnc/config配置和vncpasswd,默认lucky
2 已经配置好sources.list、.bashrc、.bash_aliase、.pip,位于~/bashrc,看情况使用
3 nvcc --version 【这才是docker里的cuda版本】;nvidia-smi【这是宿主机的cuda版本】;cat /usr/include/cudnn.h,nvidia/cuda的cudnn都不在/usr/local/cuda/目录
4 安装软件:vscode、bcompare、vim、git、gedit、gcc、cmake、anaconda

容器使用案例

nvidia-docker run --runtime=nvidia -u root -it \
-p 30021:8888 -p 30022:6006 -p 30023:6901 -p 30024:5901 \
--name 容器名2 \
-v 本地挂载目录:/headless/ld \
lucky:cuda10.0-cudnn7.6.5-devel-ubuntu18.04-vnc /bin/bash

4 cuda10.2 & cuda10.1

由于目前我的机器driver没有进行升级,所以无法测试10.1和10.2情况,但是应该同理可用。

build -t lucky:cuda10.1-cudnn7-devel-ubuntu18.04-vnc -f Dockerfile-cuda10.1 .

build -t lucky:cuda10.2-cudnn7-devel-ubuntu18.04-vnc -f Dockerfile-cuda10.2 .

nvidia-docker run --runtime=nvidia -u root -it  -p 30031:8888 -p 30032:6006 -p 30033:6901 -p 30034:5901 --name lucky3 -v 本地:/headless/ld lucky:cuda10.1-cudnn7-devel-ubuntu18.04-vnc /bin/bash

nvidia-docker run --runtime=nvidia -u root -it -p 30041:8888 -p 30042:6006 -p 30043:6901 -p 30044:5901 --name lucky4 -v 本地:/headless/ld lucky:cuda10.2-cudnn7-devel-ubuntu18.04-vnc /bin/bash

你可能感兴趣的:(docker)