Ваш "temp.csv" живет по эфемерному изображению докера. Поэтому для того, чтобы вы могли получить к нему доступ вне образа докера, вам лучше всего предоставить том.
В каталоге, где находится ваш файл Docker, создайте папку с именем this_folder * 1003. *
Затем, когда вы запустите свой образ, подключите этот том к папке внутри вашего контейнера. docker run -v this_folder:/this_folder <image-name>
Затем измените этот код на:
import pandas as pd
import numpy as np
import os
df = pd.DataFrame(np.random.randint(0, 100, size=(100, 4)), columns=['A', 'B', 'C', 'D'])
df.to_csv('/this_folder/temp.csv')
"this_folder" теперь«том», который является взаимно доступным для вашего док-контейнера и хост-машины. Так что за пределами вашего док-контейнера, если вы ls /this_folder
вы должны увидеть temp.csv
живет там сейчас.
Если вы не хотите монтировать том, вы можете загрузить файл куда-нибудь и загрузить его позже. Но в локальной среде просто смонтируйте папку и используйте ее для обмена файлами между вашим контейнером и вашим локальным компьютером.
Редактирование
, когда с докером дела идут не так, как планировалось, вы можете захотетьчтобы получить к нему доступ в интерактивном режиме. Это означает «ssh'ing в ваш докер контейнер»
Вы делаете это с помощью: docker run -it pandas_example /bin/bash
Когда я вошел в систему, я увидел, что файл 'temp.csv' создается вта же папка, что и main.py
Теперь вам решать вопрос дальше. Вам нужно переместить файл 'temp.csv' в каталог, который используется совместно с вашим локальным компьютером.
FROM python:3.7.1
RUN pip3 install pandas
COPY test.py /my_working_folder/
CMD python3 /my_working_folder/test.py
Для быстрого исправления добавьте
import subprocess
subprocess.call("mv temp.csv /temp_folder/", shell=True)
в конец основного.py. Но это не рекомендуется.