繁体   English   中英

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

[英]Before stopping the docker-container copy one file and store to the host

我正在尝试构建一个运行python脚本的docker-image 基本上,它正在生成.csv文件。 我想在docker-container消失之前在我的localhost机器上安装.csv文件。 以下是我的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"]

在主机上装载卷,这将起作用。

如果.csv /path/in/container内的/path/in/container位置创建,则运行

docker run -itd -v /path/on/host/:/path/in/container <image>

这应该使您的.csv可以在/path/on/host/上的/path/on/host/ location上使用,即使您的容器已经死亡。

您可以将输出直接发送给主机。 您必须在运行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/

暂无
暂无

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

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