Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在workdir中保存docker输出文件_Python_Docker - Fatal编程技术网

Python 在workdir中保存docker输出文件

Python 在workdir中保存docker输出文件,python,docker,Python,Docker,我是docker的新手 我的Dockerfile FROM python:3 WORKDIR /app COPY . /app RUN pip install numpy RUN pip install pandas CMD ["python", "app.py"] 在app.py中我有一行 pd.DataFrame(predictions, columns=['predictions']).to_csv('output.csv') 我构建并运行映像,这没关系,但我无法将此数据帧保存在我的工

我是
docker的新手
我的Dockerfile

FROM python:3
WORKDIR /app
COPY . /app
RUN pip install numpy
RUN pip install pandas
CMD ["python", "app.py"]
在app.py中我有一行

pd.DataFrame(predictions, columns=['predictions']).to_csv('output.csv')

我构建并运行映像,这没关系,但我无法将此数据帧保存在我的工作目录中。如何更改
Dockerfile
,以便我可以这样做?

output.csv
从容器中取出到主机上的最佳方法可能是使用卷。卷是可以在主机和容器之间共享的存储路径,非常类似于虚拟机的共享文件夹

就你而言:

docker run --rm -v $(pwd)/volume:/app your_image

然后,您应该在工作目录中的
/volume
下找到容器的
/app
路径中的所有内容

你到底想要实现什么?您需要主机上的输出吗?或者根本没有在
/app
中创建
output.csv
?我需要主机上的输出。文件已创建。看起来,
/app
不是空的,从到Dockerfile中的
复制
指令。以这种方式装入卷时,
/app
的原始内容将被隐藏。在这种情况下,使用任何其他路径而不是
/app
装载卷都可以。@Proyag我可以在Dockerfile中删除
COPY
或更改
WORKDIR
?我同意,@Proyag@Edward,您可以更改Python代码以将CSV保存到其他地方,例如
/home/your_user/output.CSV
。然后您可以将卷定义更改为
-v$(pwd)/volume:/home/your_user
。我使用
docker run--rm-v$(pwd)/volume:/e/测试我的_映像
它可以工作,但输出不保存。如果我在
app.py
`中更改为_csv('/e/test/output.csv'),我会得到错误
没有这样的文件或目录