由 Sachin Abeywardana,DeepSchool.io 的创始人
数据科学中的 Docker
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升你的数据分析技能
3. 谷歌 IT 支持专业证书 - 支持你所在组织的 IT
Docker 是一个简化软件工程师安装过程的工具。作为一个统计学背景的人,我曾经很少关心如何安装软件,并且偶尔会花费几天时间解决系统配置问题。然后 Docker 出现了,真是天赐良机。
把 Docker 想象成一个轻量级虚拟机(我为使用这个术语向 Docker 专家道歉)。一般来说,有人会编写一个 Dockerfile 来构建一个 Docker 镜像,其中包含了你项目所需的大部分工具和库。你可以用它作为基础,并添加任何其他项目所需的依赖项。其基本理念是,如果在我的机器上能工作,就能在你的机器上工作。
数据科学家能得到什么?
-
时间:你在安装软件包时节省的时间本身就使这个框架值得使用。
-
可重复研究:我认为 Docker 就像是报告中的随机数种子。你在机器上使用的相同依赖和库版本也会被用在其他人的机器上。这确保了你生成的分析在其他分析师的机器上也能运行。
-
分发:你不仅在分发你的代码,还在分发运行这些代码的环境。
它是如何工作的?
Docker 采用了(可重用的)层的概念。所以你在 Dockerfile
中写的每一行都被视为一个层。例如,你通常会从以下内容开始:
FROM ubuntu
RUN apt-get install python3
这个 Dockerfile 会在 Ubuntu
层之上安装 python3
(作为一个层)。
实际上,你对每个项目所做的就是把所有的 apt-get install
、pip install
等命令写入你的 Dockerfile,而不是在本地执行它们。
我推荐阅读教程 docs.docker.com/get-started/
来开始使用 Docker。学习曲线最小(最多 2 天的工作量),收益巨大。
Dockerhub
最后,Dockerhub 值得特别提及。就我个人而言,Dockerhub 是让 Docker 真正强大的原因。它就像github 对 git 的作用,是一个分享 Docker 镜像的开放平台。 你总是可以使用docker build ...
在本地构建 Docker 镜像,但将这个镜像push
到 Dockerhub 上总是好的,以便下一个人可以简单地pull
进行个人使用。
我用于机器学习和数据科学的 Docker 镜像可以在这里找到,以及它的源文件。
总结
就我个人而言,我已经开始在我大多数甚至所有的 github 仓库中加入 Dockerfile。特别是考虑到这意味着我将不再遇到安装问题。
Docker 是软件工程师(以及现在的数据科学家/分析师)应该在工具箱中拥有的工具之一(几乎与 git 同样重要和受到尊重)。长期以来,统计学家和数据科学家忽视了数据分析的软件方面。考虑到 Docker 的使用变得如此简单直观,实际上没有理由不将其纳入你的软件开发流程。
编辑 1
如果你想要比上面提供的快速提示更为详细的教程,请查看这个视频(跳转到 4:30 左右):
编辑 2(关于 python 的 virtualenvs,R 的 packrat 等的简要说明):
就我个人而言,我没有使用过其他容器化工具,但应该注意到,Docker 独立于 python 和 R,且超越了为特定编程语言容器化应用程序的范畴。
如果你喜欢我的教程/博客文章,考虑支持我 在www.patreon.com/deepschoolio
或通过订阅我的 YouTube 频道www.youtube.com/user/sachinabey
(或者两者都订阅!)。哦,还有点赞!:)
简介: Sachin Abeywardana 是一位机器学习博士和DeepSchool.io的创始人。
原文。经许可转载。
相关:
-
DeepSchool.io: 深度学习学习
-
使用 Docker 的数据科学部署
-
Jupyter+Spark+Mesos: 一种“主观”的 Docker 镜像