摘要: Docker容器那么强大?能够应用道数据科学领域?看来学习一下!
Docker容器是经过虚拟化开发和部署应用程序的一种愈来愈流行的方式,它对数据科学家有用吗?固然,本指南就会向你介绍它的做用,并手把手教你快速入门。python
Docker是一种愈来愈流行的,使在容器中开发、部署和运行应用程序变得更容易的工具。由于它们容许开发人员将应用程序与它所需的全部部分(如库和其余依赖项)打包,并将其做为一个包打包,这样就能够帮助开发人员更简单的使用。你确定会有这样的疑问:这是软件工程师经常使用的工具,可是数据科学家如何使用这个强大的工具呢?鉴于你有相似的疑问,咱们就先来讨论一下想在数据科学中使用Docker的一些缘由。docker
一、再现性ubuntu
Docker对于数据科学家或者是软件工程师最大的吸引力就是它的可再现性。除了可以共享Docker镜像自己以外,理论上还能够经过共享python脚本与他人共享Docker内部的数据。简单来讲,你的同时能够运行这个脚原本查看Docker镜像中的内容。服务器
二、时间成本框架
Docker没必要安装单独的软件包,由于它们都被包含在Docker镜像自己中,因此很节省时间。此外,Docker容器的启动时间约为50ms,比运行传统的虚拟机快得多。分布式
三、灵活性工具
它是一个很是灵活的工具,由于在Docker库中能够快速建立并运行任何Docker映像的软件。学习
四、自带测试环境测试
Docker在将软件环境托管到活动服务器以前对其进行测试是很是有用,能够将Docker容器配置为与服务器环境相同,这可让测试变得更简单。ui
五、分布式
数据科学家能够花费一些时间准备他们的机器来适应一个特定的框架。例如,Docker提供了30多种独特的方法供用户设置Caffe环境,Docker提供了一个一致的平台来共享这些工具,减小了搜索操做系统特定安装程序和库所花的时间。
六、可访问性
Docker生态系统—Docker compose和Docker machine —可让任何人轻松的访问它。这意味着一些不熟悉代码的公司成员仍然能够运行它。甚至你能够向销售团队成员,或更高的管理人员展现你正在构建的新数据科学应用程序!
咱们已经介绍了使用Docker的好处,那么咱们就能够开始学习Docker。首先,转到Docker站点安装软件版本。为了确保正确安装,打开命令行并输入docker版本。应该显示以下:
花费一些时间,如今咱们已经安装了Docker,接下来研究一个相对直接的,常见的例子,执行下面的代码:
对于Docker的新手来讲,直接上手来进行实战这有点望而却步,为了方便你们理解,将这个例子分解一下:
docker run:这个命令的做用是查找镜像(在本例中是jupyter notebook),加载一个容器,而后在该容器中运行一个命令。
-p 8000:8000:' p '关键字表明端口,所以命令的这一部分是打开主机和容器之间的端口,格式为-p<主机端口>:<容器端口>。
jupyter/notebook:要加载的镜像,对于Jupyter notebook,你能够在Docker官方库中浏览上千种最流行的软件工具。运行该命令并导航到http://localhost:8000/以后,会看到如下内容:
这个过程应该很简单,当你想要下载Python运行库和Jupyter包时,经过Docker运行它是很是有效的。如今已经开始运行了,接下来开始在主机和容器之间共享Jupyter notebook。首先,咱们须要在主机上建立一个目录来存储notebook,咱们将其命名为/jupyter-notebook。在运行Docker命令时共享目录操做和端口的工做方式类似,咱们须要添加如下内容:
所以,如今对<主机端口>:<容器端口>进行映射:(例如主机上的~/jupyter-notebook,容器上的/home/joyvan)。来自Jupyter Docker文档的容器目录将做为这类映像的指定工做目录。结合这一点和咱们以前运行的内容,完整的命令应该是这样的:
如今简单地加载本地主机服务器,建立一个新的notebook,并将它重命名为“Example Notebook”。最后,检查本地主机~/jupyter-notebook目录,能够看到:Example Notebook.ipynb。
Dockerfile是一个文本文档,其中包含能够用来自动建立Docker映像的命令,这是保存Docker命令并经过Docker build /path/to/dockerfile命令连续执行它们的有效方法。上面提到的Jupyter notebook示例的Dockerfile以下所示:
如今对每一个部分进行讲解:
FROM Ubuntu : latest
这指的是对于新映像,Docker应该以什么为基础,在本例中是ubuntu。Latest:简单调用最新的版本。若是要测试旧版本,须要输入版本号。
RUN apt-get update && apt-get install -y python3 python3-pip
这一行确保系统是最新的,而后安装python3和pip3。
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的专家不只能够帮助你进行本地开发,并且能够在与数据科学家团队合做时节省大量的时间、金钱和精力。
本文做者:【方向】
本文为云栖社区原创内容,未经容许不得转载。