创建简单的 Docker 数据科学映像

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 这本简明的入门教程介绍了使用 Docker 设置 Python 数据科学环境,包括创建 Dockerfile、构建映像、运行容器、共享和部署映像以及推送到 Docker Hub。

推荐:使用NSDT场景编辑器快速搭建3D应用场景

为什么选择 Docker for Data Science?

作为一名数据科学家,拥有一个标准化的便携式分析和建模环境至关重要。Docker 提供了一种创建可重用和可共享的数据科学环境的绝佳方法。在本文中,我们将逐步介绍使用 Docker 设置基本数据科学环境的步骤。

为什么我们会考虑使用 Docker?Docker 允许数据科学家为他们的工作创建隔离且可重现的环境。使用 Docker 的一些主要优势包括:

  • 一致性 - 可以在不同的计算机上复制相同的环境。不再有“它适用于我的机器”的问题。
  • 可移植性 - Docker 环境可以轻松地跨多个平台共享和部署。
  • 隔离 - 容器隔离不同项目所需的依赖项和库。不再有冲突!
  • 可扩展性 - 通过启动更多容器,可以轻松扩展 Docker 内部构建的应用程序。
  • 协作 - Docker 通过允许团队共享开发环境来实现协作。

步骤 1:创建 Dockerfile

任何 Docker 环境的起点都是 Dockerfile。此文本文件包含有关生成 Docker 映像的说明。

让我们为 Python 数据科学环境创建一个基本的 Dockerfile,并将其保存为不带扩展名的“Dockerfile”。

# Use official Python image
FROM python:3.9-slim-buster
# Set environment variable
ENV PYTHONUNBUFFERED 1
# Install Python libraries 
RUN pip install numpy pandas matplotlib scikit-learn jupyter
# Run Jupyter by default
CMD ["jupyter", "lab", "--ip='0.0.0.0'", "--allow-root"]

这个Dockerfile使用官方的Python镜像,并在其上安装了一些流行的数据科学库。最后一行定义了在启动容器时运行 Jupyter Lab 的默认命令。

步骤 2:构建 Docker 镜像

现在我们可以使用以下命令构建映像:docker build

docker build -t ds-python .

这将创建一个基于我们的 Dockerfile 标记的图像。ds-python

生成映像可能需要几分钟时间,因为所有依赖项都已安装。完成后,我们可以使用 .docker images

步骤 3:运行容器

构建映像后,我们现在可以启动一个容器:

docker run -p 8888:8888 ds-python

这将启动 Jupyter Lab 实例,并将主机上的端口 8888 映射到容器中的 8888。

现在,我们可以在浏览器中导航到 Jupyter 并开始运行笔记本!localhost:8888

步骤 4:共享和部署映像

Docker 的一个关键优势是能够跨环境共享和部署映像。

要将图像保存到 tar 存档,请运行:

docker save -o ds-python.tar ds-python

然后,可以通过以下方式将此压缩包加载到安装了Docker的任何其他系统上:

docker load -i ds-python.tar

我们还可以将映像推送到 Docker 注册表(如 Docker Hub),以便在组织内公开或私下与其他人共享。

若要将映像推送到 Docker 中心,请执行以下操作:

  1. 创建一个 Docker 中心帐户(如果还没有)
  2. 使用 从命令行登录到 Docker Hubdocker login
  3. 使用您的 Docker Hub 用户名标记映像:docker tag ds-python yourusername/ds-python
  4. 推送镜像:docker push yourusername/ds-python

映像现在托管在 Docker Hub 上。其他用户可以通过运行以下命令拉取映像:ds-python

docker pull yourusername/ds-python

对于私有仓库,您可以创建组织并添加用户。这允许您在团队中安全地共享 Docker 映像。

步骤 5:加载和运行映像

要在另一个系统上加载并运行 Docker 映像,请执行以下操作:

  1. 将文件复制到新系统ds-python.tar
  2. 使用 加载图像docker load -i ds-python.tar
  3. 使用 启动容器docker run -p 8888:8888 ds-python
  4. 访问 Jupyter 实验室localhost:8888

就是这样!ds-python 映像现在可以在新系统上使用了。

结语

这为您提供了使用 Docker 设置可重现的数据科学环境的快速入门知识。需要考虑的一些其他最佳做法:

  • 使用较小的基础映像(如 Python slim)来优化映像大小
  • 利用 Docker 卷实现数据持久性和共享
  • 遵循安全原则,例如避免以根用户身份运行容器
  • 使用 Docker Compose 定义和运行多容器应用程序

我希望这个介绍对您有所帮助。Docker为简化和扩展数据科学工作流程提供了大量可能性。

3D建模学习工作室 整理翻译,转载请注明出处!

目录
相关文章
|
Kubernetes 网络协议 关系型数据库
「容器架构」Debian和 Alpine作为基准Docker映像的对比
「容器架构」Debian和 Alpine作为基准Docker映像的对比
|
存储 Linux Shell
用于数据科学的 Docker:每个数据科学家都应该了解 Docker
什么是 Docker? 想象一下自己是空间站上的宇航员,并计划到户外欣赏美景。
|
存储 缓存 安全
如何快速构建Slim Docker映像
  您还记得那些日子,当您编写出色的软件,但无法将其安装在其他人的计算机上,或刚安装就崩溃? 虽然这从来都不是很好的体验,但我们总是可以说   如今,由于容器化,这已不再是借口。   简而言之,通过容器化,您可以将应用程序和所有必要的依赖项打包到镜像中。 执行时,您将该镜像作为容器运行。 这样一来,您就不必为弄乱他人的系统而运行您的软件。 如果容器在您的计算机上运行,则您的软件应随即运行。 这对于数据科学家在部署依赖于不同软件包和版本的模型时也很有用。 对我来说,数据科学家必须知道如何创建镜像和容器。   众所周知,Docker是该领域的主要参与者,并且Docker镜像无处不在。 这很棒
688 0
|
Web App开发 监控 网络协议
Zabbix 的 Docker 映像
在Docker中使用 zabbix 进行监控Container 容器提供了以下* Zabbix服务*,请参阅[ Zabbix文件](http://www.zabbix.com/)附加信息。
1737 0
|
Web App开发 .NET 应用服务中间件
Docker 为 ASP.NET Core Web 应用程序生成 Docker 映像,创建并运行多个容器
1.为 ASP.NET Core 应用程序生成 Docker 映像 下载这个事例项目:https://github.com/dotnet/dotnet-docker/tree/master/samples/aspnetapp 下载完成后给这项目生成一个镜像名为aspnetapp镜像 docker build -t aspnetapp .
1364 0
|
Web App开发 测试技术 API
Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行
1.使用VS2017新建ASP.NET Core WebApi项目 选择API启用Docker支持 2.为 ASP.NET Core WebApi 应用程序生成 Docker 映像,并创建容器运行 生成项目,将项目拷贝到 E:\web\aspnetcore.
2556 0
|
机器学习/深度学习 UED Docker
在数据科学环境中使用 Docker 容器
容器是传统虚拟机的轻量级版本。它们不会占用您服务器上的大量空间,易于创建和消除,而且启动速度很快。它们还可以轻松地创建可重复使用的数据科学环境。
1815 0
|
Devops Docker Python
Docker帮助数据科学敏捷化
本文讲的是Docker帮助数据科学敏捷化【编者的话】本文介绍了Domino如何使用Docker来帮助科学家和研究人员解决环境敏捷性和可重现的问题。
1435 0
|
机器学习/深度学习 UED Docker
<转载>在数据科学环境中使用 Docker 容器
容器是传统虚拟机的轻量级版本。它们不会占用您服务器上的大量空间,易于创建和消除,而且启动速度很快。它们还可以轻松地创建可重复使用的数据科学环境。
1541 0