用docker run添加一个数据文件

我想添加一个Python脚本到docker集装箱。 此脚本处理我在运行容器时提供的数据文件。 我无法弄清楚如何做到这一点,所以我会感谢一些帮助(我不想将data.txt文件添加到容器)。 我明白,我可以发送文件到一个REST接口curl,但如果可能我想要一个更简单的解决scheme。

(如果解决scheme适用于ECS,我也会很棒,但是我还不了解其中的含义。)

Dockerfile:

FROM centos:6 RUN yum -y update RUN yum -y install epel-release && yum clean all RUN yum -y install python-pip && yum clean all ADD . /myapp WORKDIR /myapp # install requirements RUN pip install -r requirements.txt # install #RUN pip install . CMD ["python","./app.py", "/data.txt"] 

脚本:

 import sys def print_out(datafile): with open(datafile, 'r') as dfile: for line in dfile: print line.strip() def main(): datafile = sys.argv[1] print_out(datafile) if __name__ == '__main__': main() 

data.txt中:

 Bob Steve Marvin Paul 

运行容器(不这样工作)

$ docker运行myapp data.txt

使用主机卷(aka bind mount)将您的脚本(假设称为app.py)和data.txt映射到容器中。 将它们放在同一个目录中,然后运行:

 docker run -v `pwd`:/myapp myapp python app.py data.txt 

从该目录将当前目录映射到/ myapp(覆盖该位置图像内的任何内容)。 如果你在Docker for Windows / Mac上,确保你在c:/ Users或/ Users目录下。