Remote Jupyter Notebook + Docker - не обновляет каталог файлов? - PullRequest
0 голосов
/ 16 сентября 2018

В настоящее время я работаю с удаленной записной книжкой 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 в дерево записной книжки).

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

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

1 Ответ

0 голосов
/ 22 сентября 2018

Контейнеры 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 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...