zoukankan      html  css  js  c++  java
  • Ubuntu16.04+nvidia docker

    一、安装过程:

    https://blog.csdn.net/heiheiya/article/details/102834222

    1、先卸载干净以前的nvidia-docker

    sudo 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 nvidia-docker

    2、添加软件包存储库

    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

    3、查看可安装版本

    apt-cache madison nvidia-docker2 nvidia-container-runtime

     4、安装nvidia-docker2【找到合适的版本安装,不一定按照下面的版本】

    sudo apt-get install -y nvidia-docker2=2.0.3+docker18.09.7-3 nvidia-container-runtime=2.0.0+docker18.09.7-3

    5、测试成功 [下载合适的镜像环境,比如python3.6环境,比如nvidia cuda9的镜像]

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

     6、安装tensorflow-gpu(不推荐直接下载tensorflow镜像,可以先自己在docker启动后安装cudajupyter notebook ensorflow自己需要的版本)

    nvidia-docker run -it -p 8888:8888 tensorflow/tensorflow:latest-gpu

    以上命令,如果没有安装tensorflow-gpu则会主动安装并启动。

    查看所有正在启动的容器:docker ps -a

     进入容器:docker exec -it 2be581570c90 bash

    二、卸载docker过程

    https://blog.csdn.net/weixin_41282397/article/details/86524297

    方法一:

    sudo apt-get remove docker  
    sudo apt-get remove --auto-remove docker

    方法二:
    sudo apt remove docker-ce
    方法三:
    # 查询相关软件包
    dpkg -l | grep docker
    # 删除这个包
    sudo apt remove --purge docker***【这个是还有什么跟docker相关的,都删掉】

    三、遇到的错误

    1、错误1

    详细操作:https://www.cnblogs.com/Lee-yl/p/12108255.html

    ERROR:gzip: stdout: No space left on deviceE: mkinitramfs failure cpio 1

    在sudo apt-get install时报错,

    采用df -h命令查看时,发现/boot目录下空间不够,故要将未使用的Ubuntu内核版本删除。

    采用dpkg --get-selections|grep linux命令查看安装了哪些Ubuntu内核版本删除

    采用uname -a查看当前使用的Ubuntu内核版本。

    删除无用的内核版本:采用sudo apt-get purge删除,如输入命令:sudo apt-get purge linux-modules-4.15.0-45-generic【注意,Ubuntu16.04内核版本不要太高,后面容易出问题】

     

    2、错误2

    sudo apt-get install *****
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    E: 无法定位软件包 *****

    原因:

    方法一:【可能不能成功】

    sudo apt-get update

    更新一些软件源。

    方法二:【换源】

    1. 在 etc/apt 下的sources.list
    2. 添加镜像源:*************
    3. $ sudo apt-get update

    3、错误3:

    下列软件包有未满足的依赖关系:
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树
    正在读取状态信息... 完成
    有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
    因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
    包尚未被创建或是它们已被从新到(Incoming)目录移出。
    下列信息可能会对解决问题有所帮助:

    下列软件包有未满足的依赖关系:
    nvidia-docker2 : 依赖: docker-ce (= 18.03.1~ce~3-0~ubuntu) 但是它将不会被安装
    或docker-ee (= 18.03.1~ee~3-0~ubuntu) 但无法安装它
    E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

    原因:docker和nvidia-docker2以及Ubuntu系统版本不对应的原因,卸载所有docker,重新安装正确的版本。

    方法:

    查看对应的版本命令:

    apt-cache madison nvidia-docker2 nvidia-container-runtime

     找到合适的版本安装:安装命令【使用的Ubuntu16.04内核版本是4.15.0-72-generic,但后面降级了,但好像有没有降成功】

    sudo apt-get install -y nvidia-docker2=2.0.3+docker18.06.3-3 nvidia-container-runtime=2.0.0+docker18.06.3-3

    4、错误4:

    执行docker run命令时报错

    Error response from daemon: oci runtime error: container_linux.go:346: starting container process caused "process_linux.go:

    还是docker和Ubuntu内核版本问题,卸载docker重装。升级内核或者降级docker。

    升级内核:https://blog.csdn.net/u013431916/article/details/82530523

    sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak【备份一下源文件(因为待会要替换掉,以免以后找不到)】

    sudo vim /etc/apt/sources.list【修改文件】

    在里面最后一行加入deb http://security.ubuntu.com/ubuntu trusty-security main,并保存(:wq)

    sudo apt-get update【更新】

    sudo apt-get install linux-image-extra-3.16.0-43-generic【找到想安装的内核版本,安装新内核】

    dpkg -l | grep 3.16.0-43-generic【查看是否安装成功】

    sudo vim /etc/default/grub【编辑grub配置文件,指定新安装的内核版本为当前使用的版本】

    找到

    GRUB_DEFAULT=0

    修改为:

    GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.16.0-43-generic"

    sudo update-grub【保存退出,然后执行以下命令更新 Grub 引导】

    sudo reboot【更新完成后重启系统】

    uname -r【查看一下是否更换成功】

    5、错误5:

    执行命令sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi报错:

    docker: Error response from daemon: Unknown runtime specified nvidia.

    原因:没有将docker启动

    方法:

    sudo systemctl daemon-reload
    sudo systemctl restart docker

     

     
  • 相关阅读:
    Oracle Flashback Table
    新上线MySQL数据库规划
    Spark启动流程(Standalone)- master源码
    Spark启动流程(Standalone)-分析
    Spark Netty 通信框架解析
    Spark内核概述
    SparkStreaming DStream转换
    Spark-Core RDD依赖关系
    Spark-Core RDD中函数(变量)传递
    Spark-Core RDD行动算子
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/12121337.html
Copyright © 2011-2022 走看看