Когда вы запускаете контейнер docker, вы создаете том с -v ${PWD}:/data
. Если файл Book1.csv находится в вашем текущем каталоге, когда вы его запускаете, в вашем работающем контейнере docker он будет доступен по адресу /data/Book1.csv
.
Эта часть ошибки
File "TestCode.py", line 5, in <module>
df = pd.read_csv(r'/var/lib/docker/volumes/myvol/_data/Book1.csv')
говорит мне, что вам нужно изменить строку 5 TestCode.py на что-то вроде этого:
df = pd.read_csv('/data/Book1.csv')
Редактировать:
Вы попросили меня объяснить немного больше. Я не гений, поэтому я бы рекомендовал прочитать официальную документацию (https://docs.docker.com/engine/reference/builder/), но вот краткое объяснение того, о чем вы спрашивали.
Сначала ваш Dockerfile.
Эта первая строка означает, что ваше основное изображение python: 3. Существует множество общедоступных изображений, которые предварительно созданы для конкретных c вариантов использования (например, с установленными зависимостями Python). (см. https://hub.docker.com/_/python)
FROM python:3
Это означает, что выполните команду pip install pandas
RUN pip install pandas
Это означает, что ваш рабочий каталог - / mydata
WORKDIR /mydata
Следующая строка означает копирование TestCode.py с вашего хост-компьютера в ./, в данном случае это / mydata. Таким образом, вы получите файл /mydata/TestCode.py на вашем Docker изображении.
COPY TestCode.py ./
Часть CMD
определяет некоторые значения по умолчанию для исполняемого контейнера. См. https://docs.docker.com/engine/reference/builder/#cmd для получения дополнительной информации.
CMD python TestCode.py
Далее, команда docker build. См. Документы -> https://docs.docker.com/engine/reference/commandline/build/.
docker build -t python-test .
Это означает, что захватите файл Docker в текущем каталоге, используйте его для создания образа и назовите изображение python -test.
Наконец, команда docker run. См. Документы -> https://docs.docker.com/engine/reference/commandline/run/.
docker run --name pytest -v ${PWD}:/data python-test
Это означает запуск контейнера docker с использованием образа python. Назовите contianer pytest
и смонтируйте том вашего текущего каталога в / data в контейнере. (см. https://docs.docker.com/engine/reference/commandline/run/#mount -объем - v --- только для чтения ).
Опять же, документы покрывают это гораздо лучше, чем я, поэтому я бы посмотрел там .