美文网首页
Ubuntu16.04下nvidia驱动+docker+nvid

Ubuntu16.04下nvidia驱动+docker+nvid

作者: wangkai333 | 来源:发表于2019-10-18 20:38 被阅读0次

    # Ubuntu16.04下nvidia驱动+docker+nvidia-docker+cuda9.0+cudnn7.0安装指南

    ## 宿主机安装nvidia驱动

    ### 打开终端,先删除旧的驱动:

    sudo apt-get purge nvidia*

    ### 禁用自带的 nouveau nvidia驱动

    sudo gedit /etc/modprobe.d/blacklist.conf

    看下Nouveau是否已经被禁用

    lsmod | grep nouveau

    如果已经没有任何显示说明不用禁用了,否则继续下面操作

    sudo vim /etc/modprobe.d/blacklist-nouveau.conf #创建一个文件(注:按一下i键,表示现在进行内容插入)

    并添加如下内容:

    blacklist nouveau

    options nouveau modeset=0

    注:退出可用两个命令中任意一个:

    按完esc键后,按shift+zz 或者

    按完esc键后,输入“:wq!”双引号里面的内容

    再更新一下:

    sudo update-initramfs –u

    确认下Nouveau是已经被禁用:

    lsmod | grep nouveau

    没有输出什么东西,说明已经成功关闭了。

    ### 关闭X-window服务:

    Ctrl+Alt+F1切换到无桌面命令终端:这里lightdm是你自己的显示管理器,也可能是gdm,kdm,到底是哪一个可以使用 cat /etc/X11/default-display-manager进行查看,然后修改,并关闭显示管理器。这里下面几小步建议用手机拍照,对着照片来做,因为你可能不太熟悉

    sudo service lightdm stop

    此时正式进入终端界面:

    Login:用户账号

    Password:用户密码

    安装:

    cd  /home/wlh/tmp # 导到你的下载的驱动放在哪里的地址

    sudo sh NVIDIA-Linux-x86_64-387.12.run

    按照如下步骤安装:

    (1)accept

    (2)contiuned install

    后面默认yes安装就好了

    启动显示器:(lightdm只是我的显示管理器,你可能是前面的说的gdm)

    sudo service lightdm start

    然后按Ctrl+Alt+F7 进入到桌面进行操作

    检查是否成功

    nvidia-smi

    ## docker安装

    ### 下载地址:https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/

    containerd.io_1.2.5-1_amd64.deb

    docker-ce-cli_18.09.4_3-0_ubuntu-xenial_amd64.deb

    docker-ce_18.09.4~3-0~ubuntu-xenial_amd64.deb

    dpkg -i containerd.io_1.2.5-1_amd64.deb

    dpkg -i docker-ce-cli_18.09.4_3-0_ubuntu-xenial_amd64.deb

    dpkg -i docker-ce_18.09.4~3-0~ubuntu-xenial_amd64.deb

    使用 docker 命令试试安装成功没有。

    ### 建立 docker 组:

    $ sudo groupadd docker

    将当前用户加入 docker 组:

    $ sudo usermod -aG docker $USER

    ## 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 -

    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

    ### 执行下载5个命令,下载5个包到当前目录,拷贝这些包到服务器上。

    apt download libnvidia-container1

    apt download libnvidia-container-tools

    apt download nvidia-container-runtime-hook

    apt download nvidia-container-runtime

    apt download nvidia-docker2

    在服务器上执行,dpkg -i libnvidia* nvidia* 即可一次安装这5个包。

    ### Test nvidia-smi with the latest official CUDA image

    docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

    ## 安装cuda9.0

    ### 首先去官网下载cuda9.0, 下载那个1.6G的.run文件,下载完毕就可以正式安装了。

    进入下载目录,给文件添加运行权限:

    chmod +x ./cuda_9.0.176_384.81_linux.run

    ### 运行安装

    sudo ./cuda_9.0.176_384.81_linux.run

    启动安装程序,一直按空格到最后(可以选择Ctrl+c跳过),不用担心,到99%的时候,输入accept接受条款

    注意:第一个提醒你是否安装驱动时,选“n”,其余都“y”

    安装完毕后就需要添加环境了,这步很重要!!!

    gedit ~/.bashrc

    ### 把下面的内容添加到最后:

    export CUDA_HOME=/usr/local/cuda

    export PATH=$PATH:$CUDA_HOME/bin

    export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

    ### 测试是否安装成功

    nvcc -V

    ## 安装cudnn7

    ### 下载完直接解压,解压会出现一个cuda文件夹,里面有两个文件include 和 lib64,把里面的文件copy到/usr/local/cuda/里面相应的目录里。 如果你就在local下解压的就不要移动了。只需要给文件加读权限即可!

    sudo chmod a+x /usr/local/cuda/include/cudnn.h

    sudo chmod a+x /usr/local/cuda/lib64/libcudnn*

    ### 然后更新网络连接:

    cd /usr/local/cuda/lib64/ 

    sudo chmod +r libcudnn.so.7.0.5  # 自己查看.so的版本 

    sudo ln -sf libcudnn.so.7.0.5. libcudnn.so.7 

    sudo ln -sf libcudnn.so.7 libcudnn.so 

    sudo ldconfig

    ### 查看cudnn版本,检查是否安装好:

    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

    ## 加载打包的镜像

    $ docker load<jq_tensorflow1.8-cuda9.0-cudnn7-devel-ubuntu16.04.tar

    ## 启动容器

    docker run --runtime=nvidia -it -v /home/dock/Downloads:/usr/Downloads name /bin/bash

    ### 启动报错解决办法:

    Systemd drop-in file

    sudo mkdir -p /etc/systemd/system/docker.service.d

    sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF

    [Service]

    ExecStart=

    ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime

    EOF

    sudo systemctl daemon-reload

    sudo systemctl restart docker

    Daemon configuration file

    sudo tee /etc/docker/daemon.json <<EOF

    {

    "runtimes": {

    "nvidia": {

    "path": "/usr/bin/nvidia-container-runtime",

    "runtimeArgs": []

    }

    }

    }

    EOF

    sudo pkill -SIGHUP dockerd

    再去开启镜像,done。

    ## 配置容器内环境

    ## 容器后台运行退出命令:CTRL+p+q

    ## 后台容器重新进入命令:docker exec -it [container id] /bin/bash

    相关文章

      网友评论

          本文标题:Ubuntu16.04下nvidia驱动+docker+nvid

          本文链接:https://www.haomeiwen.com/subject/zapwmctx.html