Создание файла из контейнера docker - PullRequest
0 голосов
/ 03 февраля 2020

Хотите знать, как создать файл из контейнера docker.

Например, в этом проекте я стремлюсь создать текстовый файл. Я получаю подтверждение, что процесс завершен, однако, нет текстового файла.

import logging
import os

logging.basicConfig(format='%(asctime)s - [%(processName)s - %(threadName)s] %(name)s - %(levelname)s - %(message)s', datefmt="%Y-%m-%d %H:%M:%S", level=os.getenv('LOGLEVEL', 'INFO'))  

logger = logging.getLogger(__name__)                     

f= open("example.txt","w+")
for i in range(10):
     f.write("This is line %d\r\n" % (i+1))
f.close() 
logger.info(f'Successfully created text file.')

Что я делаю не так?

1 Ответ

2 голосов
/ 03 февраля 2020

Наиболее эффективный способ обмена файлами между хостом и запущенным на нем контейнером - это использование томов. Такие тома удобно хранить разными.

Ради аргумента:

  1. Предполагая, что вы находитесь в root, mkdir ./data вашего проекта, чтобы создать каталог на тот же уровень, что и ваша папка ./src.

  2. Измените свой код (чтобы доказать свою точку зрения) на open("/aha/example.txt","w+"). NB Да, /aha не /data ... продолжайте читать.

  3. Запустите контейнер и установите хост (!) ./data в контейнер как ./aha: docker run --interactive --tty --volume=${PWD}/data:/aha .... NB Это монтирует хост ${PWD}/data в контейнер как каталог /aha. IIR C вы должны использовать ${PWD} для предоставления абсолютного пути

  4. После завершения кода Python контейнер будет иметь файл с именем /aha/example.txt и ваш хост (!) должен включать файл с именем ${PWD}/data/example.txt

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