docker ,nvidia-docker,docker-compose和nvidia-docker-compose的安装配置

预先安装:

Ubuntu14.04,SSH,GIT,CUDA-8.0

一、安装docker

安装最新版

// 1. 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

// 2. 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

// 3. 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

// 4. 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

安装指定版本

// 1. 查找Docker-CE的版本:
apt-cache madison docker-ce

#   docker-ce | 17.03.1~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
#   docker-ce | 17.03.0~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages

// 2. 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.1~ce-0~ubuntu-xenial)
sudo apt-get -y install docker-ce=[VERSION]

输入:$sudo docker ps 查看

去掉 sudo: 输入:$sudo usermod -aG docker your_username 

二、安装nvidia-docker

  • Prerequisties

    GNU/Linux x86_64 with kernel version > 3.10 
    Docker >= 1.9 (official docker-enginedocker-ce or docker-ee only) 
    NVIDIA GPU with Architecture > Fermi (2.1) 
    NVIDIA drivers >= 340.29 with binary nvidia-modprobe (驱动版本与CUDA计算能力相关)

  • CUDA与NVIDIA driver安装 
    处理NVIDIA-Docker依赖项 NVIDIA drivers >= 340.29 with binary nvidia-modprobe 要求. 
    根据显卡,下载对应版本的CUDA并进行安装.

    扫描二维码关注公众号,回复: 2153193 查看本文章
  • NVIDIA-Docker安装

    #Install nvidia-docker and nvidia-docker-plugin

    1. wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb
    2. sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb

    #Test nvidia-smi

    1. sudo nvidia-docker run  nvidia/cuda nvidia-smi
    2. 如果报error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/f9/f975c50357489..... net/http: TLS handshake timeout 错误,需要在/etc/default/docker 文件添加国内镜像源,文件末行添加:
       #export DOCKER_TMPDIR="/mnt/bigdrive/docker-tmp"
      DOCKER_OPTS="--insecure-registry docker-reg.emotibot.com.cn:55688"
      #DOCKER_OPTS="--registry-mirror=http://aad0405c.m.daocloud.io"
      #DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"
    3. 或者命令行输入命令:echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://f2d6cb40.m.daocloud.io\"" | sudo tee -a /etc/default/docker
    4. 重启 docker 生效。
      
       $service docker restart


三、安装docker-compose和nvidia-docker-compose

首先执行sudo -i,提示输入用户密码,输入密码后进入超级用户(root)模式,

1. Docker Compose

超级有用的实用程序,允许你在文件中存储 docker run 配置,并更轻松地管理应用程序状态。尽管它的设计目的是组合多个 docker 容器,但 docker compose 在你只有一个服务的时候依然非常有用。这里有一个稳定版本(https://github.com/docker/compose/releases):

  1. 1.首先执行sudo -i,提示输入用户密码,输入密码后进入超级用户(root)模式.
  2. 2.curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  3. 3.sudo chmod +x /usr/local/bin/docker-compose

2. Nvidia Docker Compose

不幸的是,Docker Compose 并不知道 Nvidia Docker 的存在。幸运的是,有一个解决方法:有一个小的 Python 脚本,可以用 nvidia-docker 驱动程序生成配置。通过 pip 安装 Nvidia Docker Compose:

首先安装pip:

sudo wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz
tar -vxf setuptools-1.4.2.tar.gz 
cd setuptools-1.4.2
sudo python2.7 setup.py install
easy_install-2.7 pip
  1. 或者:

  2. sudo apt-get install python2.7 python2.7-dev
    //很多pip安装的包都需要libssl和libevent编译环境
    sudo apt-get install build-essential libssl-dev libevent-dev libjpeg-dev libxml2-dev libxslt-dev
    sudo apt-get install python-pip
    

  3. sudo pip install nvidia-docker-compose

现在你可以使用 nvidia-docker-compose 命令,而不是 docker-compose 了。

替代选择

如果你不想使用 nvidia-docker-compose,你可以手动传递音量驱动程序,只需把这些选项添加到 docker-compose.yml:

  1. #Yournvidia driver version here

  2. volumes:

  3. nvidia_driver_375.26:

  4. external:true

  5. ...

  6. volumes:

  7. -nvidia_driver_375.26:/usr/local/nvidia:ro


如果运行镜像(docker logs 348322e1a639)报如下错误:

WARNING: Logging before InitGoogleLogging() is written to STDERR

F0327 10:49:48.860283     1 common.cpp:152] Check failed: error == cudaSuccess (35 vs. 0)  CUDA driver version is insufficient for CUDA runtime version

解决办法:

$docker volume rm -f nvidia_driver_375.26
$ nvidia-docker run nvidia/cuda:8.0-devel nvidia-smi


关于Git 项目时,项目的子目录中含有其他项目的code,需要先Git clone *****.git ,cd 到主目录,然后输入:

$git submodule update --init --recursive

猜你喜欢

转载自blog.csdn.net/dyx810601/article/details/79710864