繁体   English   中英

如何从 docker 容器中的 python 代码中读取本地目录中的文件?

[英]how to read a file from a local directory from python code in a docker container?

我试图将我的 python 代码容器化,这正在工作,构建 docker 映像,运行容器并在我的 app.py 文件中调用 python 代码。 接下来,我希望能够上传我的 python 代码从应用程序的根目录读取以处理一些数据的 sample.txt 文件,下例中的 sample.txt。 但是这个文件需要更新,我希望能够更新这个文件并运行容器,而不构建图像。 我如何创建/挂载一个目录并将 csv 文件放在那里并给出我的 python 代码的路径?

应用程序.py

import pandas as pd
print pd.read_csv('sample.csv')
...

泊坞窗文件

# Dockerfile
FROM debian:10.3-slim

WORKDIR /app

RUN apt-get update && apt-get -y dist-upgrade

RUN apt-get -y install apt-utils \
    build-essential \
    python3 \
    gcc \
    python3-dev \
    python3-pip \
    python3-numpy \
    python3-pandas

COPY requirements.txt /app/requirements.txt
RUN pip3 install -r requirements.txt

# Copy the python script
COPY modbus_to_influx.py /app/modbus_to_influx.py

CMD ["python3", "app.py"]

要求.txt

numpy 
pandas

当您docker run时,您可以(绑定)将主机上的文件夹/文件挂载为容器上的文件夹/文件:

docker run \
--interactive --tty --rm \
--volume=/path/to/host/file:/path/to/container/file \
your-container

例如,如果您在主机的根目录中有example.csv ,并且您希望/data容器中的 Python 应用程序可以访问它,您将:

docker run \
--interactive --tty --rm \
--volume=/example.csv:/data/example.csv \
your-container

注意文件名必须包含在--volume=host-path:container-pathhost-pathcontainer-path元素中,允许您将主机的文件 ( example.csv ) 重命名为容器上的其他内容。

或者您可以使用docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- https://docs.docker.com/engine/reference/commandline/cp/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM