Удаленный блокнот Jupyter + Docker - не обновляет каталог файлов?

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

Команда, которую я использую для выполнения записной книжки:

nvidia-docker run -it -p 8888:8888 --entrypoint /usr/local/bin/jupyter NAMEOFDOCKERIMAGE notebook --allow-root --ip=0.0.0.0 --no-browser

Команда, которую я использую для удаленного доступа к ноутбуку:

ssh -N -f -L localhost:8888:localhost:8888 remote_user@remote_host

Что странно, если я перейду в рабочий каталог записной книжки (на удаленном хосте / сервере) и добавлю папку + файлы, записная книжка не отразит изменения (т.е. mkdir new_folder в рабочем каталоге не добавит new_folder в дерево записной книжки. ).

Кто-нибудь знает, почему это может быть так, и если да, то как «обновить» / «обновить» дерево?

Большое спасибо за всех и любую помощь!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
13
0
1 250
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Контейнеры Docker имеют изолированную файловую систему. Это означает, что программа, запущенная в контейнере (в вашем случае 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 - это точка монтирования папки в файловой системе контейнера (например, /home/username/work, где username - это имя пользователя в контейнере).

Путь в контейнере зависит от используемого вами образа докера. Если вы не знаете путь в контейнере, вы можете взглянуть на файловую систему контейнера, запустив bash внутри контейнера с помощью этой команды:

nvidia-docker run -it --entrypoint /bin/bash NAMEOFDOCKERIMAGE 

После того, как вы запустите эту команду, вы окажетесь в bash внутри контейнера, поэтому вы можете увидеть внутреннюю файловую систему с ls, pwd и т. д.

Другие вопросы по теме