Перед остановкой docker-контейнера скопируйте один файл и сохраните на хосте - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь построить docker-image, который запускает скрипт на python.По сути, он генерирует .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 голосов
/ 18 июня 2019

Ваш вывод может быть отправлен прямо на ваш хост.Вы должны сделать это в момент запуска вашего образа докера.Вот шаг, чтобы сделать это:

  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/

0 голосов
/ 18 июня 2019

Смонтируйте том на вашем хосте, это будет работать.

Если создается .csv в /path/in/container месте внутри контейнера, тогда запустите

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

Это должно сделать вашу .csv доступной в /path/on/host/ месте на вашем хосте, даже когда ваш контейнер умирает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...