Ubuntu 18.04安装Docker CE+NVIDIA-Docker+TensorFlow

Docker 是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖,然后放到一个可移植的容器中,再发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

容器将应用程序封装到隔离的虚拟环境中,以简化数据中心的部署。通过将所有应用程序依赖项 (例如二进制文件和库) 都包括在内,应用程序容器能在任何数据中心环境中无缝地运行。

英伟达基于Docker 提供的NVIDIA-Docker可用于容器化 GPU 加速的应用程序。这意味着无需进行任何修改即可轻松容器化和隔离加速的应用程序,并将其部署到任何受支持的、可使用 GPU 的基础架构上。 管理和监控加速的数据中心将变得空前容易。

 

一、安装Docker

在前面的博文中,我们已经介绍了在Ubuntu系统中安装GPU环境的方法,对于还没有完成这些前提步骤的读者,可以参考:

《在Ubuntu 18.04安装NVIDIA GPU驱动》

《在Ubuntu 18.04中配置GPU环境:安装CUDA 9.0等》

你可以在命令行输入 nvcc --version来查看一下当前环境下的CUDA版本,如下图所示:

这部分主要参考官网上关于Docker的文档页“Get Docker CE for Ubuntu”,同样推荐读者查阅。我们基本是按照其中的步骤进行安装的。有时,Ubuntu上会默认安装有Docker。若先前有安装Docker,则需要先卸载(写在的方法在官方文档上有详细介绍)。为了确定本机上没有安装Docker,执行命令: docker run hello-world。如下所示,可见我的机器上并没有安装Docker,所以可以继续后面的步骤。

首先用下面的命令更新apt 包的索引:

$ sudo apt-get update

如下图所示:

把Docker仓库加进到apt里,反斜杠\代表一行,只是换行写更清晰:

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

如下图所示:

添加Docker的官方GPG key:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

验证当前你所拥有的key的指纹是9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88,方法是搜索指纹中的后八个字符。

$ sudo apt-key fingerprint 0EBFCD88

然后用下面的语句来建立稳定的仓库:

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

 如下图所示:

接下来正式安装docker:

$ sudo apt-get update
 
$ sudo apt-get install docker-ce

 如下图所示:

最后一个命令是验证docker是否安装成功,它会下载并执行hello-world镜像。如果安装正确,执行后的结果应该类似下面这样:

二、安装NVIDIA-Docker

安装完成Docker并检查安装正确(能跑出来hello-world)后,如果需要Docker容器中有GPU支持,需要再安装NVIDIA-Docker,同样参考该项目的主页(链接)。

可以看到在Quick start小节,选择我们Ubuntu的发行版,依次执行命令:

# 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

如下图所示:

正式安装NVIDIA-Docker:

# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd

用最新的CUDA镜像来测试一下nvidia-smi(检查是否安装成功,安装成功,则会显示关于GPU的信息)。

# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi

如下图所示:

三、用Docker(NVIDIA-Docker)载入TensorFlow镜像

参考Dockerhub关于Tensorflow的页面(链接),主要是“Running Containers”部分。例如,如果要开启一个基于Python2、CPU版的TensorFlow,可以使用:

$ docker run -it --rm tensorflow/tensorflow bash

或者,开启一个基于Python3、GPU版的TensorFlow(可根据需要的版本指定镜像),并开启容器。注意,这里我们使用的Tag是1.10.0-gpu-py3。因为CUDA的版本是9.0,太高版本的TensorFlow不支持。更多的可选Tag可以查阅链接

来看一下执行的结果。

可见,我们已经成功地用NVIDIA-Docker导入GPU版本的TensorFlow镜像了。

 

 

 

(本文完)

 

发布了358 篇原创文章 · 获赞 4283 · 访问量 419万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览