在docker中生成csv的python脚本

时间:2018-11-14 17:59:03

标签: python docker

我有一个生成csv作为输出的python脚本。我正在Docker容器中运行脚本。脚本完成后,docker容器立即终止,因此我无法复制文件。从容器中获取csv的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用已安装的卷启动容器,然后在容器退出时文件将位于文件系统上:

$ docker run -v $PWD/output:/usr/my/workspace mycontainer mycmd

mycmd将CSV文件输出到/usr/my/workspace。您的文件将位于主机文件系统上的output/文件夹中。

答案 1 :(得分:1)

如果您有使用例行解释语言编写的脚本,并且其关键活动涉及读取或写入本地文件,则运行该脚本的最佳方法完全不在Docker中。

您可以使用普通的Python打包工具声明脚本的依赖性(setup.pyrequirements.txt文件)。虽然您需要进行一些设置才能运行脚本,但这是非常常规的:

python3 -m venv venv
. venv/bin/activate
pip install -r requirements.txt
./the_script.py

与基于Docker的解决方案相比,它实际上没有比典型的docker run调用更为复杂;与Docker不同,大多数Linux和MacOS系统都预先安装了Python;而且您无需是root用户或具有与root用户等效的权限即可运行该脚本。您也不必担心与正在运行的容器共享文件内容的机制,也不必担心随之而来的不可避免的文件系统权限问题。