适用于 Python 和数据项目的 Docker:初学者指南

管理 Python 数据项目的依赖关系可能会很快变得混乱。 Docker 可帮助您创建一致的环境,您可以轻松构建、共享和部署。

来源:KDnuggets

简介

Python和数据项目存在依赖问题。由于 Python 版本、虚拟环境、系统级包和操作系统差异,让别人的代码在您的计算机上运行有时可能比理解代码本身需要更长的时间。

Docker 通过将代码及其整个环境(Python 版本、依赖项、系统库)打包到一个称为映像的工件中来解决这个问题。从该映像中,您可以启动在您的笔记本电脑、队友的计算机和云服务器上以相同方式运行的容器。您停止调试环境并开始交付工作。

在本文中,您将通过实际示例来学习 Docker,重点关注数据项目:容器化脚本、使用 FastAPI 提供机器学习模型、使用 Docker Compose 连接多服务管道以及使用 cron 容器调度作业。

先决条件

在完成示例之前,您需要:

  • 为您的操作系统安装 Docker 和 Docker Compose。请遵循适合您平台的官方安装指南。
  • 熟悉命令行和Python。
  • 熟悉编写 Dockerfile、构建映像以及从该映像运行容器。
  • 如果您想快速回顾一下,这里有几篇文章可以帮助您快速上手:

    您不需要深厚的 Docker 知识来跟随。每个例子都解释了正在发生的事情。

    使用固定依赖项对 Python 脚本进行容器化

    让我们从最常见的用例开始:您有一个 Python 脚本和一个requirements.txt,并且您希望它在任何地方都能可靠地运行。

    我们将构建一个数据清理脚本,该脚本读取原始销售 CSV 文件、删除重复项、填充缺失值并将清理后的版本写入磁盘。

    构建项目

    该项目的组织如下:

    数据清理器/

    ├── Dockerfile

    ├── 需求.txt├── clean_data.py└── 数据/└── raw_sales.csv编写脚本这是使用 Pandas 完成繁重工作的数据清理脚本: