Как получить доступ к CSV-файлу (расположенному в pc hdd) из контейнера Docker с пандами Python? - PullRequest
1 голос
/ 11 июля 2019

Я хочу реализовать алгоритм машинного обучения, который может работать с гомоморфными данными с использованием библиотеки PySEAL . Библиотека PySEAL выпускается в виде док-контейнера с файлом examples.py, в котором показан пример гомоморфного шифрования. Я хочу отредактировать файл examples.py для реализации алгоритма ML. Я пытаюсь импортировать файл CSV таким образом -

dataset = pd.read_csv ('Dataset.csv')

Я успешно импортировал библиотеку панд. Я перепробовал много подходов для импорта файла CSV, но потерпел неудачу. Как я могу импортировать это?

Я новичок в Докере. Подробная процедура будет действительно полезна.

1 Ответ

1 голос
/ 11 июля 2019

Вы можете сделать это с помощью процесса сборки Docker (при условии, что вы создаете образ) или с помощью сопоставления тома, к которому контейнер будет обращаться во время выполнения.

Создание источника с помощью Dataset.csvв пределах

Для доступа через сборку вы можете выполнить команду Docker Copy, чтобы получить файл в рабочей области контейнера

FROM 3.7

COPY /Dataset.csv /app/Dataset.csv
...

Затем вы можете напрямую получить доступ к файлу через / app /Dataset.csv из контейнера с использованием функции pandas.read_csv (), например -

data=pandas.read_csv('/app/Dataset.csv')

Отображение общего тома для Dataset.csv

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

dataset = pd.read_csv ('app/Dataset.csv')

Предполагая, что ваш Dataset.csv находится в моем / user / dir / Dataset.csv

Из CLI:

docker run -v my/user/dir:app my-python-container

Преимущество последнего решения заключается в том, что вы можете продолжить редактирование файла 'Dataset.csv' на вашем хосте, и этот файл будет отражать изменения, сделанные вами, ИЛИ процесс Python, если это произойдет.

...