在停止docker-container之前,复制一个文件并存储到主机

时间:2019-06-18 12:05:03

标签: python docker dockerfile

我正在尝试构建一个运行Python脚本的docker-image。基本上,它正在生成.csv文件。我想在.csv消失之前在本地计算机中拥有docker-container文件。以下是我的dockerfile,谁能在不再次运行.csv的情况下帮助我如何存储docker-container文件。

from ubuntu:18.04

run apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
    python3 \
    git \
    python3-pip

run pip3 install --upgrade tensorflow
run pip3 install opencv-python
run pip3 install keras
run pip3 install psutil
run pip3 install py-cpuinfo
run pip3 install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.3/imageai-2.0.3-py3-none-any.whl

workdir /data/code/



COPY . /data/
RUN ls /data/code/ | grep model

RUN chmod +x /data/code/image_prediction.py

CMD ["python3", "./image_prediction.py", "-OPTIONAL_FLAG"]

2 个答案:

答案 0 :(得分:0)

在主机上安装音量,即可使用。

如果在容器内false的位置创建了.csv,请运行

/path/in/container

这将使您的docker run -itd -v /path/on/host/:/path/in/container <image>在主机上.csv的位置上可用,即使容器死了。

答案 1 :(得分:0)

您可以将输出直接发送到主机。您必须在运行docker映像时执行此操作。这是执行此操作的步骤:

  1. 例如,在桌面上创建一个文件夹,然后将输入数据放入其中。称为input_dir。该文件夹的完整路径将像/path/to/input_dir/一样(您可以通过进入该文件夹并在终端pwd上键入它来获得它)。
  2. 例如,在桌面上的主机上创建另一个文件夹以输出脚本。称为output_dir。该文件夹的完整路径为:path/to/output_dir
  3. 运行您的docker映像应如下所示:

     docker run -it -v /path/to/input_dir/:/data/ -v /path/to/output_dir/:/data/output/ my-image bash
    

完成后,您的输入将自动在/data/input中可用,并确保将输出目录设置为'/ data / output'

完成脚本运行后,您将在主机上的以下文件夹中找到输出:/path/to/output_dir/