本文将介绍和演示如何使用Docker设置Python数据科学环境,包括创建
Dockerfile
、构建镜像、运行容器、共享和部署镜像,以及推送到Docker Hub。
微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩
图片由Midjourney创建。
为什么要选择Docker用于数据科学?
【Docker】:https://www.docker.com/
作为一名数据科学家,拥有一个标准化和可移植的分析和建模环境至关重要。Docker提供了一种优秀的方式来创建可重用和可共享的数据科学环境。在本文中将介绍使用Docker设置基本数据科学环境的步骤。
为什么要考虑使用Docker呢?Docker允许数据科学家为他们的工作创建隔离和可重现的环境。使用Docker的一些关键优势包括:
-
一致性 - 可以在不同的机器上复制相同的环境。不再出现“在我的机器上可以运行”的问题。
-
可移植性 - Docker环境可以轻松地在多个平台上共享和部署。
-
隔离性 - 容器隔离了不同项目所需的依赖关系和库。不再发生冲突!
-
可扩展性 - 通过启动更多的容器,可以轻松扩展在Docker内构建的应用程序。
-
协作 - Docker通过允许团队共享开发环境从而促进协作。
步骤1:创建Dockerfile
任何Docker环境的起点都是Dockerfile
。这个文本文件包含构建Docker镜像的指令和说明。
接下来为Python数据科学环境创建一个基本的Dockerfile
,并将其保存为没有扩展名的“Dockerfile”
。
# 使用官方的Python镜像
FROM python:3.9-slim-buster
# 设置环境变量
ENV PYTHONUNBUFFERED 1
# 安装Python库
RUN pip install numpy pandas matplotlib scikit-learn jupyter
# 默认运行Jupyter
CMD ["jupyter", "lab", "--ip='0.0.0.0'", "--allow-root"]
这个Dockerfile
使用官方的Python镜像,并在其上安装一些常用的数据科学库。最后一行定义了容器启动时默认运行Jupyter Lab的命令。
【官方Python镜像】:https://hub.docker.com/layers/library/python/3.9.9-slim-buster/images/sha256-24f5fd0379e7a0a729baa94e7637336b9f2dd2cf8251e46923ec181ee90ab54c
步骤2:构建Docker镜像
现在,可以使用docker build
命令构建镜像:
docker build -t ds-python .
这将创建一个以Dockerfile
为基础的标记为ds-python
的镜像。
构建镜像可能需要几分钟的时间,因为所有的依赖项都会被安装。完成后,就可以使用docker images
命令查看本地的Docker镜像了。
步骤3:运行容器
镜像构建完成后,现在就可以启动一个容器:
docker run -p 8888:8888 ds-python
这将启动一个Jupyter Lab实例,并将主机上的8888
端口映射到容器中的8888
端口。
现在,可以在浏览器中导航到localhost:8888
来访问Jupyter并开始运行笔记本!
步骤4:共享和部署镜像
Docker的一个关键优势是能够在不同的环境中共享和部署镜像。
要将镜像保存为tar
归档文件,请运行:
docker save -o ds-python.tar ds-python
然后,就可以通过以下方式在任何安装了Docker的其他系统上加载这个tar
包:
docker load -i ds-python.tar
用户还可以将镜像推送到Docker Hub这样的Docker注册表中,以便与他人公开或在组织内私下共享。
将镜像推送到Docker Hub:
-
如果还没有Docker Hub账号,请创建一个。
-
使用
docker login
命令从命令行登录到Docker Hub。 -
使用你的Docker Hub用户名为镜像打上标签:
docker tag ds-python yourusername/ds-python
。 -
推送镜像:
docker push yourusername/ds-python
。
ds-python
镜像现在已经托管在Docker Hub上。其他用户可以通过运行以下命令拉取镜像:
docker pull yourusername/ds-python
对于私有版本库,可以创建一个组织并添加用户。这样,就可以在团队内安全地共享Docker镜像。
步骤5:加载和运行镜像
要在另一个系统上加载和运行Docker镜像:
-
将
ds-python.tar
文件复制到新系统上。 -
使用
docker load -i ds-python.tar
命令加载镜像文件。 -
使用
docker run -p 8888:8888 ds-python
命令启动容器。 -
在
localhost:8888
访问Jupyter Lab。
就是这样!现在,ds-python
镜像已经可以在新系统上使用了。
总结
以上就是使用Docker建立可重现的数据科学环境的快速入门指南。还有一些额外的最佳实践值得考虑:
-
使用较小的基础镜像,如Python slim等,以优化镜像大小。
-
利用Docker卷进行数据持久化和共享。
-
遵循安全原则,如避免以root身份运行容器。
-
使用Docker Compose来定义和运行多容器应用程序。
希望这些介绍对你有所帮助。Docker为简化和扩展数据科学工作流程提供了大量可能性。
推荐书单
IT BOOK 多得(点击查看5折活动书单)
https://u.jd.com/psx2y1M
《Pandas数据分析》
《Pandas数据分析》详细阐述了与Pandas数据分析相关的基本解决方案,主要包括数据分析导论、使用PandasDataFrame、使用Pandas进行数据整理、聚合Pandas DataFrame、使用Pandas和Matplotlib可视化数据、使用Seabom和自定义技术绘图、金融分析、基于规则的异常检测、Python机器学习入门、做出更好的预测、机器学习异常检测等内容。此外,该书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
《Pandas数据分析》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
《Pandas数据分析》https://item.jd.com/14065178.html
精彩回顾
微信搜索关注《Python学研大本营》,加入读者群
访问【IT今日热榜】,发现每日技术热点