Docker在容器外的input/输出
我用python脚本创build了一个docker容器。 python脚本获取input文件,进行一些处理并将输出文件保存在某个指定的位置。
docker run /app/script.py --input /data/input.csv --output /data/output.csv
由于每次运行脚本时input文件都可能不同,因此我希望它位于Docker容器之外。 我也想将输出存储在容器外的某处。
docker run /app/script.py --input /my/local/location/outside/docker/input.csv --output /my/local/location/outside/docker/output.csv
docker工人支持这个吗? 如果是这样,一个人怎么能够实现呢?
我的Dockerfile
如下所示:
FROM phusion/baseimage RUN apt-get update RUN apt-get install -y build-essential RUN apt-get install -y python-dev RUN apt-get install -y python-pip RUN apt-get install -y python-numpy && \ apt-get install -y python-scipy COPY ./requirements.txt /app/requirements.txt COPY ./src/script.py /app/script.py WORKDIR /app COPY . /app
您可以使用-v选项将包含文件的目录作为Docker数据卷装入: https : //docs.docker.com/engine/tutorials/dockervolumes/
docker run -d -P --name myapp -v /app mydir/app python script.py
这将带来额外的好处,允许您停止容器,对文件进行更改,并启动容器并查看容器内反映的更改。
所以你应该添加到你的Dockerfile一行
ENTRYPOINT ["python","/app/script.py"]
和a
CMD myinput
或类似的东西,
读
在Dockerfile中,CMD和ENTRYPOINT有什么区别?
阅读有关的文档
https://docs.docker.com/engine/reference/builder/#entrypoint
和