Ответ 1
Контейнеры-докеры имеют изолированную файловую систему. Это означает, что программа, запущенная в контейнере (jupyter notebook в вашем случае), видит разные папки, чем те, которые у вас есть в хост-системе.
Если вы хотите предоставить контейнеру доступ к одной папке на хосте, вы можете использовать опцию -v
при запуске докера.
В вашем случае вы должны запустить контейнер с помощью этой команды:
nvidia-docker run -it -p 8888:8888 -v /PATH_TO_HOST_FOLDER:/PATH_TO_CONTAINER_FOLDER --entrypoint /usr/local/bin/jupyter NAMEOFDOCKERIMAGE notebook --allow-root --ip=0.0.0.0 --no-browser
где:
-
PATH_TO_HOST_FOLDER
- это путь к папке в хост-системе, которую вы хотите разделить с контейнером. -
PATH_TO_CONTAINER_FOLDER
- этоPATH_TO_CONTAINER_FOLDER
монтирования папки в файловой системе контейнера (например,/home/username/work
гдеusername
- имя пользователя в контейнере).
Путь в контейнере зависит от используемого вами изображения докеров. Если вы не знаете путь в контейнере, вы можете взглянуть на файловую систему контейнера, запустив bash внутри контейнера с помощью этой команды:
nvidia-docker run -it --entrypoint /bin/bash NAMEOFDOCKERIMAGE
После запуска этой команды вы находитесь в bash внутри контейнера, поэтому вы можете видеть внутреннюю файловую систему с ls
, pwd
и т.д.