数据科学家Docker入门指南

  1. 云栖社区>
  2. 博客>
  3. 正文

数据科学家Docker入门指南

【方向】 2018-09-09 12:20:38 浏览1509
展开阅读全文

 Docker容器是通过虚拟化开发和部署应用程序的一种越来越流行的方式,它对数据科学家有用吗?当然,本指南就会向你介绍它的作用,并手把手教你快速入门。

816618bf36aeabc647b81ec5795cd952662fcc62

介绍

Docker是一种越来越流行的,使在容器中开发、部署和运行应用程序变得更容易的工具。因为它们允许开发人员将应用程序与它所需的所有部分(如库和其他依赖项)打包,并将其作为一个包打包,这样就可以帮助开发人员更简单的使用。你肯定会有这样的疑问:这是软件工程师常用的工具,但是数据科学家如何使用这个强大的工具呢?鉴于你有类似的疑问,我们就先来讨论一下想在数据科学中使用Docker的一些原因。

为什么选择Docker?

1、再现性

Docker对于数据科学家或者是软件工程师最大的吸引力就是它的可再现性。除了能够共享Docker镜像本身之外,理论上还可以通过共享python脚本与他人共享Docker内部的数据。简单来说,你的同时可以运行这个脚本来查看Docker镜像中的内容。

2、时间成本

Docker不必安装单独的软件包,因为它们都被包含在Docker镜像本身中,所以很节省时间。此外,Docker容器的启动时间约为50ms,比运行传统的虚拟机快得多。

3、灵活性

它是一个非常灵活的工具,因为在Docker库中可以快速创建并运行任何Docker映像的软件。

4、自带测试环境

Docker在将软件环境托管到活动服务器之前对其进行测试是非常有用,可以将Docker容器配置为与服务器环境相同,这可以让测试变得更简单。

5、分布式

数据科学家可以花费一些时间准备他们的机器来适应一个特定的框架。例如,Docker提供了30多种独特的方法供用户设置Caffe环境,Docker提供了一个一致的平台来共享这些工具,减少了搜索操作系统特定安装程序和库所花的时间。

6、可访问性

Docker生态系统—Docker composeDocker machine —可以让任何人轻松的访问它。这意味着一些不熟悉代码的公司成员仍然可以运行它。甚至你可以向销售团队成员,或更高的管理人员展示你正在构建的新数据科学应用程序!

开始

我们已经介绍了使用Docker的好处,那么我们就可以开始学习Docker。首先,转到Docker站点安装软件版本。为了确保正确安装,打开命令行并输入docker版本。应该显示如下:

3c8435b50c092d93c6e69cf82b02542141bc026e

花费一些时间,现在我们已经安装了Docker,接下来研究一个相对直接的,常见的例子,执行下面的代码:

f462a0c0bba7047658332c7950725b638991928f

对于Docker的新手来说,直接上手来进行实战这有点望而却步,为了方便大家理解,将这个例子分解一下:

docker run这个命令的作用是查找镜像(在本例中是jupyter notebook),加载一个容器,然后在该容器中运行一个命令。

-p 8000:8000' p '关键字代表端口,因此命令的这一部分是打开主机和容器之间的端口,格式为 -p<主机端口><容器端口>

jupyter/notebook要加载的镜像,对于Jupyter notebook,你可以在Docker官方库中浏览上千种最流行的软件工具。运行该命令并导航到http://localhost:8000/之后,会看到以下内容:

698759d01df3331264bf70ea90e6ec8d74ab20c3

这个过程应该很简单,当你想要下载Python运行库和Jupyter包时,通过Docker运行它是非常有效的。现在已经开始运行了,接下来开始在主机和容器之间共享Jupyter notebook。首先,我们需要在主机上创建一个目录来存储notebook,我们将其命名为/jupyter-notebook。在运行Docker命令时共享目录操作和端口的工作方式相似,我们需要添加以下内容:

e1c8223a7fc6006dbcee7a06f9cd8a79ff03168a

因此,现在对<主机端口><容器端口>进行映射:(例如主机上的~/jupyter-notebook,容器上的/home/joyvan)。来自Jupyter Docker文档的容器目录将作为这类映像的指定工作目录。结合这一点和我们之前运行的内容,完整的命令应该是这样的:

5548a1d40d25f49441848ac38f80f8264ab46c92

现在简单地加载本地主机服务器,创建一个新的notebook,并将它重命名为“Example Notebook”。最后,检查本地主机~/jupyter-notebook目录,可以看到:Example Notebook.ipynb

0bbb7df23b10f8316575eeb845610458725a6125

Dockerfile

Dockerfile是一个文本文档,其中包含可以用来自动创建Docker映像的命令,这是保存Docker命令并通过Docker build /path/to/dockerfile命令连续执行它们的有效方法。上面提到的Jupyter notebook示例的Dockerfile如下所示:

b2603b8aa6c0a15c698693c8db2b68d0916c2b4d

现在对每个部分进行讲解:

FROM Ubuntu : latest

这指的是对于新映像,Docker应该以什么为基础,在本例中是ubuntuLatest简单调用最新的版本。如果要测试旧版本,需要输入版本号。

RUN apt-get update && apt-get install -y python3 \ python3-pip

这一行确保系统是最新的,然后安装python3pip3

RUN pip3 install jupyter

然后安装Jupyter

WORKDIR /home/jupyter

COPY  /src/jupyter ./

Docker映像容器上设置工作目录,然后从本地主机复制需要的文件。

EXPOSE 8000

-p以前的工作方式类似,将端口8000暴露给了主机。

ENTRYPOINT ["jupyter", "notebook", "--ip=*"]

开始 Jupyter notebook

Dockerfile非常有用,因为它允许你团队内的其他团队成员轻松地运行Docker容器。

结论

 

就像你看到的那样,我们成功地为Docker提供了一个工作用例,并且运行得非常快。我们仅仅触及了你所能做的表面,但是Docker真的算是一个神奇的库,它存在无限的可能性。成为Docker的专家不仅可以帮助你进行本地开发,而且可以在与数据科学家团队合作时节省大量的时间、金钱和精力。


以上为译文。

本文由阿里云云栖社区组织翻译。

文章原标题《data-scientist-guide-getting-started-docker》,

作者:Dan Clark 译者:乌拉乌拉,审校:。

文章为简译,更为详细的内容,请查看原文

网友评论

登录后评论
0/500
评论
【方向】
+ 关注