ubuntu16.04 cuda-cudnn-docker环境安装

1、nvidia驱动安装

# 在系统加⼊入 Nvidia 驱动的官⽅方 ppa

sudo add-apt-repository ppa:graphics-drivers/ppa

 

# 更新源

sudo apt update

 

# 安装 nvidia驱动  推荐安装nvidia-418版本驱动

#或者可以使用以下命令获取合适的驱动

ubuntu-drivers devices

 

sudo apt install nvidia-418

 

2、cuda安装  

#此版本为9.0

# 下载 cuda 元数据包

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.deb -O cuda-repo-ubuntu1604_9.0.176-1_amd64.deb

 

# 安装该包

sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb

 

# 添加 nvidia 的公钥

sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub`

 

sudo apt update

 

sudo apt install cuda-9-0

 

3、cudnn安装

# 确保源配置⽂文件夹已存在

sudo mkdir -p /etc/apt/sources.list.d/

 

# 写⼊入 cudnn 源地址

sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/nvidia-ml.list'

#(http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64)(此为网络访问地址,但在导入apt源时需要加上后面的空格和/)

 

sudo apt update

 

# 安装 CUDNN7 for CUDA 9.0  目前最新版本为7.6.3.30, 其他版本cuda的对应cudnn可以去上面的网址找

sudo apt install libcudnn7=7.6.3.30-1+cuda9.0

 

 

4、docker 安装

可查看菜鸟教程

#更换国内软件源,推荐中国科技大学的源,稳定速度快(可选)

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt update

 

#安装需要的包

sudo apt install apt-transport-https ca-certificates software-properties-common curl

 

#添加 GPG 密钥,并添加 Docker-ce 软件源,这里还是以中国科技大学的 Docker-ce 源为例

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \

$(lsb_release -cs) stable"

#更新源

sudo apt update

 

#安装 Docker-ce

sudo apt install docker-ce

 

#设置开机自启动并启动 Docker-ce(安装成功后默认已设置并启动,可忽略)

sudo systemctl enable docker
sudo systemctl start docker

 

#测试运行

sudo docker run hello-world

 

#添加当前用户到 docker 用户组,可以不用 sudo 运行 docker(可选)

sudo groupadd docker
sudo usermod -aG docker $USER

 

#测试添加用户组(可选)

docker run hello-world

 

5、nvidia-docker2 安装

github nvidia/nvidia-docker

# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker 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 -
curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu16.04/amd64/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 runtime可能不存在,需要安装nvidia-container-runtime

sudo apt install nvidia-container-runtime

 

#还可能需要配置docker的daemon.json文件,一般在/etc/docker目录下,如果在/etc/docker目录下不存在daemon.json文件,则创建一个,一般情况下的配置如下:

{

  "runtimes": {

        "nvidia": {

            "path": "nvidia-container-runtime",

            "runtimeArgs": []

        }

    },

  "graph": "/home/znxj/dockerRootDir"

}

 

#其中graph后面的配置是指docker的内容存储根目录,建议选择一个空间大的位置创建

 

6、docker简单命令

#查看所有的docker容器

docker ps -a

 

#查看所有的本地docker镜像

docker images

 

#保存docker镜像为文件 和 从文件导入docker镜像

docker save 镜像名称 > 文件路径

docker load < 文件路径

 

#docker容器停止、启动、重启、删除(删除时要求停止容器)

docker stop 容器id/容器名称

docker start 容器id/容器名称

docker restart 容器id/容器名称

docker rm 容器id/容器名称

 

#将修改后的容器保存为镜像

docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2

-m表示保存镜像的message

-a 表示保存镜像的人

e218edb10161 为容器id

runoob/ubuntu:v2  表示保存的镜像名称和版本号

 

#docker镜像删除、网上拉取(从docker hub网站寻找)、通过镜像启动一个容器

docker rmi 镜像id/镜像名称

docker pull 镜像名称:镜像版本(例子:docker pull nvidia/cuda:latest)

 

docker run -it -p 2524:22 -v ~/docker:/root --privileged=true --runtime=nvidia --restart=always --name gaojie-106-docker-9.0 nvidia-cuda9.0:v1 /bin/bash

#说明(-it 表示可以交互式进行docker, 2524表示宿主机port, 22表示容器的虚拟端口, ~/docker表示宿主机的实际目录,映射为容器中的root目录, --privileged=true表示启用特权(一般不建议使用), --runtime=nvidia表示运行环境为nvidia, --restart=always表示自动重启, --name表示设置容器名称,gaojie-106-docker-9.0为容器名称, nvidia-cuda9.0:v1表示docker镜像(冒号前为镜像名称,后为镜像版本), /bin/bash表示容器的运行环境)

 

在进入容器后,可以自行安装openssh-server,然后启动ssh,并对docker用户密码进行修改,并source /etc/profile, 则可以使用ssh连接docker容器

如果需要使用远程图形界面访问(x11访问),则需要配置/etc/ssh/sshd_config:

添加X11UseLocalhost no,并且设置X11Forwarding yes,然后重启ssh即可

 

 

 

 

在docker容器中安装软件时建议安装在/usr/local/下

7、docker容器安装eclipse

1、Jdk安装

从oracle官网下载jdk的ubuntu版本文件,上传到docker容器中,并解压至/usr/local/java下,然后配置环境变量

环境变量配置:/etc/profile.d/java.sh    JAVA_HOME为jdk的根目录

export JAVA_HOME=/usr/local/java/jdk1.8.0_181

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

 

2、gtk安装

参考链接:https://blog.csdn.net/singleyellow/article/details/74628428

sudo apt-get install build-essential

sudo apt-get install libgtk-3-dev

sudo apt-get install pkg-config

sudo apt-get install devhelp

 

3、eclipse安装

从官网下载自己所需要的eclipse版本,并解压到/usr/local/eclipse下

并对/usr/local/eclipse文件夹下的eclipse文件赋予可执行权限

chmod +x /usr/local/eclipse/eclipse

配置/usr/local/eclipse/eclipse.ini,在其首行前插入以下两行(/usr/local/java/jdk1.8.0_181/jre/bin/java表示为jdk根目录下的jre/bin/java,设置为eclipse的运行环境)

-vm

/usr/local/java/jdk1.8.0_181/jre/bin/java

 

配置/etc/profile.d/eclipse

export PATH=/usr/local/eclipse:$PATH

然后使环境生效

source /etc/profile

然后使用ssh开启x11连接docker,即可远程图形界面展示eclipse

8、docker容器安装miniconda

1、下载miniconda.sh文件(此处下载的为miniconda3最新版本)

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linuxx86_64.sh

2、赋予可执行权限

chmod +x Miniconda3-latest-Linuxx86_64.sh

3、执行

./Miniconda3-latest-Linuxx86_64.sh   或者   bash Miniconda3-latest-Linuxx86_64.sh

然后根据提示自定义安装(建议自定义安装目录为/usr/local/miniconda3或miniconda2,并且不要使用conda init进行环境变量的初始化)

环境配置:/etc/profile.d/miniconda3.sh

   export PATH=/usr/local/miniconda3/bin:$PATH

 

然后使环境生效

source /etc/profile

 

4、miniconda使用

#创建环境(创建一个python3.6的环境)

conda create -n 环境名 python=3.6

#安装python包

source activate 环境名

pip install 包名

 

9、docker容器安装fsl

官网下载链接:https://fsl.fmrib.ox.ac.uk/fsldownloads_registration

下载ubuntu版本的fslinstall.py文件

使用python2环境进行安装python fslinstall.py

如果出错,则对fslinstall.py赋予可执行权限

chmod +x fslinstall.py

./fslinstall.py

这样会默认安装到/usr/local/fsl下

环境配置:/etc/profile.d/fsl.sh

FSLDIR=/usr/local/fsl

. ${FSLDIR}/etc/fslconf/fsl.sh

PATH=${FSLDIR}/bin:${PATH}

export FSLDIR PATH

环境生效:

source /etc/profile

10、docker容器安装freesurfer

参考链接:https://blog.csdn.net/uinglin/article/details/79541063

从官网下载linux安装包  freesurfer-Linux-centos6_x86_64-stable-pub-v6.0.0.tar.gz

解压到/usr/local/freesurfer下

环境配置:/etc/profile.d/freesurfer.sh

export FREESURFER_HOME=/usr/local/freesurfer

source $FREESURFER_HOME/SetUpFreeSurfer.sh

环境生效:

source /etc/profile

测试:

分别输入:tkregister2、tkmedit、tksurfer 和recon-all --help没有报错的话 ,就说明基本安装成功

错误debug:

首先安装apt-file

sudo apt install apt-file

apt-file update

#根据错误

(例如:错误为qdec.bin: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory:)

1、首先查看/usr/lib/x86_64-linux-gnu/中是否存在类似文件:

ls | grep libjpeg

如果存在(如存在libjpeg.so.8.0.2

则加链接:sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.8.0.2 /usr/lib/libjpeg.so.62

如果不存在

则进行apt-file search libjpeg

然后根据搜索的结果进行选择性安装apt update 和 apt install,

直到没有错误为止

11、docker容器安装matlab

要求docker run时必须加入--privileged=true 启动容器才可安装(这样才可以在容器中挂载iso文件)

参考链接:https://blog.csdn.net/jesse_mx/article/details/53956358

 

 

 

 

环境配置:/etc/profile.d/matlab.sh

export PATH=/usr/local/MATLAB/R2016b/bin:$PATH

环境生效:

source /etc/profile

 

激活matlab

    当打开了x11远程图形界面转发后,执行matlab,进行激活

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值