Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

人工智能(AI)和机器学习(ML)最近真的火了,并驱动了从自动驾驶汽车到药物发现等等应用领域的快速发展。AI和ML的前途一片光明。
另一方面,Docker通过引入临时轻量级容器彻底改变了计算世界。通过使用一个COW(写时拷贝)层来保存数据,容器基本上封装了在一个映像(一堆只读层)中运行所需的所有软件。废话少说,让我们开始构建一个Python数据科学容器吧。
Python数据科学包
我们的Python数据科学容器利用了以下超酷的Python包:
NumPy: NumPy或Numeric Python支持大型、多维数组和矩阵。它为数学和数值操作提供了快速的预编译函数。此外,NumPy还使用强大的数据结构优化了Python编程,以便高效地计算多维数组和矩阵。
SciPy: SciPy为回归、最小化、傅里叶变换等提供了有用的函数。基于NumPy, SciPy扩展了它的功能。SciPy的主要数据结构也是一个多维数组,由Numpy实现。该软件包包含了能帮助我们解决线性代数、概率论、积分和更多任务的工具。
Pandas: Pandas为操作数据结构和执行广泛的数据分析提供了功能强大的工具。它可以很好地处理不完整的、非结构化的和无序的真实数据,并提供了用于整形、聚合、分析和可视化数据集的工具。
SciKit-Learn: SciKit-Learn是一个集成了各种最先进的机器学习算法的Python模块,可用于中等规模的监督和无监督学习的问题。它是最著名的python机器学习库之一。Scikit-learn包侧重于使用通用高级语言将机器学习带给非专业人士。主要强调的是易用性、性能、文档和API一致性。SciKit-Learn授权于简化的BSD许可下,具有最小的依赖项并易于分发,被广泛应用于学术和商业环境。Scikit-learn为常见的机器学习算法提供了一个简洁和一致的接口,从而使将ML引入生产系统中变得容易。
Matplotlib: Matplotlib是一个Python 2D绘图库,能够在多种硬拷贝格式和跨平台的交互式环境中生成出版物质量图。Matplotlib可用于Python脚本、Python和IPython shell、Jupyter笔记本、web应用服务器和四个图形用户界面工具包中。
NLTK: NLTK是一个用于构建处理人类语言数据的Python程序的领先平台。它为50多个语料库和词汇资源(如WordNet)提供了易于使用的接口,以及一套用于分类、标记、词干分析、标签化、解析和语义推理的文本处理库。
构建数据科学容器
Python正迅速成为数据科学家的首选语言,因此我们将使用Python作为构建我们数据科学容器的首选语言。
基础Alpine Linux映像
Alpine Linux是一个很小的Linux发行版,专为喜欢安全性、简单性和资源效率的高级用户设计。
正如Alpine所宣称的:
小。简单。安全。Alpine Linux是一个面向安全的轻量级Linux发行版,基于musl libc和busybox。
Alpine映像非常小,其中容器的大小不超过8MB。通过最小化的包安装来减少底层容器上的攻击面。这使得Alpine成为我们数据科学容器的一个选择映像。
下载并运行Alpine Linux容器非常简单,使用以下命令:

在我们的Dockerfile中,我们可以简单地通过以下命令来使用Alpine 基础映像:

多说无益,我们来构建Dockerfile
现在让我们来构建Dockerfile.
FROM指令用于将alpine-latest设置为基本映像。使用WORKDIR指令,我们将/var/www设置为我们容器的工作目录。ENV PACKAGES列出了我们的容器所需的软件包,如git、blas和libgfortran。我们的数据科学容器所需的python包被定义在ENV PACKAGES中。
我们将所有的命令合并到一个Dockerfile RUN指令下,以减少层数,从而帮助我们减少最终的映像大小。
构建和标签化映像
现在我们已经定义了我们的Dockerfile,使用终端导航到Dockerfile所在的文件夹,并使用以下命令构建映像:

-t标志用于以“name-tag”格式命名一个标记。-f标记用于定义Dockerfile的名称(默认为“PATH/Dockerfile”)。
运行容器
我们已经成功地构建并标签化了docker映像,现在我们可以使用以下命令来运行该容器:

瞧,我们可以看到一个python shell已经准备好执行各种很酷的数据科学的东西了。

我们的容器附带了Python2.7,但是如果你想使用Python3.6,也不要难过。瞧,你可以查看Python 3.6的Dockerfile:
像这样构建和标签化映像:

像这样运行该容器:

这样做了之后,你就有了一个可以用来完成各种很酷的数据科学工作的容器了。
福利
你有足够的时间和资源来建立这些东西。如果你没有,你可以拉取我已经构建并提交到Docker注册中心Docker Hub的现有映像,使用以下命令:

在拉取映像之后,你可以使用该映像或在你的Dockerfile文件中扩展相同的映像,或者你也可以在你的docker-compose或stack文件中将其作为一个映像使用。
最后
AI和ML的世界最近正在变得异常火热,并且将继续变得更加火热。大型企业正在这些领域大举投资。当你开始利用数据的力量时,谁知道它可能会带来一些什么样的不可思议的东西。
你可以在这里查看代码。
我希望本文有助于你为你的数据科学项目构建容器。
本文最初发表于HackerNoon英文原文:https://faizanbashir.me/building-python-data-science-container-using-docker-c8e346295669
译者:Nothing
976

被折叠的 条评论
为什么被折叠?



