前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >考虑将Docker引入您的数据科学工作流程

考虑将Docker引入您的数据科学工作流程

作者头像
February
修改2018-11-20 17:23:02
6750
修改2018-11-20 17:23:02
举报
文章被收录于专栏:技术翻译技术翻译

作为数据科学家的一个重要问题是正确配置数据科学环境。有时这意味着安装了很多软件包,等待软件包编译,处理模糊的错误,设置一切正常工作......大多数时候,这是一个痛苦。但是,正确配置环境对于重现分析并与他人共享工作是必要的。

出于这些原因,我在我的数据科学工作流程中介绍了Docker。

什么是Docker?

Docker是一种简化软件工程师安装过程的工具。为了以一种非常简单的方式解释(对不起,Docker大师,对于这个定义),Docker创建了一个超轻量级虚拟机,可以在几毫秒内运行,并包含以正确方式运行环境所需的全部内容。

如果你想了解更多, 这是Docker官方网站

这篇文章的目标是创建一个运行非常简单的Jupyter笔记本的环境。

首先,我们需要为正确的平台安装Docker。

现在,我们可以开始创建我们的环境。真的,我们可以为此提供一个即用型容器。在Docker Hub上,有很多可以使用的图像。例如:

  • dataquestio / python3 - 起动机
  • dataquestio / python2 - 起动机

但我的目标是从头开始创建自己的环境!

打开您喜欢的文本编辑器并开始创建Dockerfile。Dockerfile是一个描述容器构建方式的文件:

# base image
FROM python:3.6
# updating repository
RUN apt-get update
# copying requirements.txt file
COPY requirements.txt requirements.txt
# pip install
RUN pip install --no-cache -r requirements.txt
# exposing port 8888
EXPOSE 8888
# Running jupyter notebook
# --NotebookApp.token='mynotebook' is the passsword
CMD ["jupyter","notebook","--no-browser","--ip=0.0.0.0","--allow-root","--NotebookApp.token='mynotebook'"]
  1. 从一个基于Debian的简单python3映像开始。
  2. 然后更新最新版本的所有包。
  3. 复制requirements.txt,它描述了我们的数据科学环境所需的所有Python包。
  4. 运行所有包的安装。
  5. 公开Jupyter的端口。
  6. 运行该命令以启动Jupyter笔记本。

现在,是时候编写requirements.txt了。此文件描述了我们需要的所有Python包,pip将使用它来正确安装所有包。

bleach==1.5.0
certifi==2016.2.28
cycler==0.10.0
decorator==4.1.2
entrypoints==0.2.3
html5lib==0.9999999
ipykernel==4.6.1
ipython==6.2.1
ipython-genutils==0.2.0
ipywidgets==7.0.3
jedi==0.11.0
Jinja2==2.9.6
jsonschema==2.6.0
jupyter==1.0.0
jupyter-client==5.1.0
jupyter-console==5.2.0
jupyter-core==4.3.0
Markdown==2.6.9
MarkupSafe==1.0
matplotlib==2.1.0
mistune==0.7.4
nbconvert==5.3.1
nbformat==4.4.0
networkx==2.0
notebook==5.2.0
numpy==1.13.3
olefile==0.44
opencv-python==3.3.0.10
pandocfilters==1.4.2
parso==0.1.0
pexpect==4.2.1
pickleshare==0.7.4
Pillow==4.3.0
prompt-toolkit==1.0.15
protobuf==3.4.0
ptyprocess==0.5.2
Pygments==2.2.0
pyparsing==2.2.0
python-dateutil==2.6.1
pytz==2017.2
PyWavelets==0.5.2
pyzmq==16.0.2
qtconsole==4.3.1
scikit-image==0.13.1
scikit-learn==0.19.1
scipy==0.19.1
simplegeneric==0.8.1
six==1.11.0
terminado==0.6
testpath==0.3.1
tornado==4.5.2
traitlets==4.3.2
wcwidth==0.1.7
Werkzeug==0.12.2
widgetsnbextension==3.0.6
pandas>=0.22.0

好的,我们已经准备好编译我们的容器了。命令是:

docker build -t your_container_name。

使用-t选项,我们可以标记容器; 例如:

docker build -t mydatascience_env。

构建过程完成后,我们可以运行我们的容器:

docker run -p 8887:8888 -v /path_your_machine/notebook_folder/:/Documents -it datascience_env

使用-v选项,/ path_your_machine / notebook_folder /将被挂载到/ Documents路径的Docker容器中。

这对于将工作和环境与笔记本分开保存很有用。我更喜欢这种方式来组织我的工作,而不是创建一个包含环境和笔记本的Docker容器。

当容器启动时,我们可以打开Jupyter Web界面:

http://127.0.0.1:8007

当我们要求令牌时,我们会将“mynotebook”或您设置的任何内容放入您的dockerfile中,就是这样!现在我们可以进入新的数据科学环境。

点击我们拥有所有笔记本的文件!

注意:当容器停止时,将保存每个更改。

为了测试这个环境,我使用了在sk-learn网站上创建的DBSCAN的例子。这是链接

当我们的工作完成后,我们可以使用以下命令停止容器:

docker  stop datascience_env

我认为Docker是每个开发人员和每个数据科学家部署和共享工作的非常重要的工具。从我的角度来看,引入的最重要的创新Docker是一种描述如何正确地重建我的代码可以运行的环境的方法(使用Dockerfile)。通过这种方式,我每次都可以重现我在开发过程中使用的确切环境,并且可以与每个人共享构建的容器。

原文标题《Consider Introducing Docker to Your Data Science Workflow》

作者:Claudio Masolo

译者:February

不代表云加社区观点,更多详情请查看原文链接

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Docker?
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档