Не могу попасть в контейнер docker с jupyter через веб-интерфейс
Я установил Docker собрал и запустил на нём контейнер с Jupyter-notebook командой docker run -t image:1 и получил в результате ссылку на веб-интерфейс контейнера: http://50951bff15f7:8765/. Если я запускаю Jupyter без докера, то получаю ссылку вида:
http://localhost:8888/?token=43280a5fe388fcc8149154e925560322787547af299905e3
Далее ввожу token в веб-интерфейсе и работаю.
Но Jupyter из докера даёт ссылку без токена. Соответственно я захожу на веб-интерфейс. Вижу требование о вводе пароля, но ни пароля, ни токена у меня нет. Что делать?
В докере по которому собирался образ запуск Jupyter выглядит так:
RUN jupyter notebook --generate-config --allow-root && \
echo "c.NotebookApp.ip = '*'" >> ~/.jupyter/jupyter_notebook_config.py && \
echo "c.NotebookApp.password = u'sha1:3379fd89793c:4dfb6fd74c64a436b43f30dd33e9a3a68433ce52'" >> ~/.jupyter/jupyter_notebook_config.py && \
echo "c.NotebookApp.open_browser = False" >> ~/.jupyter/jupyter_notebook_config.py && \
echo "c.NotebookApp.allow_remote_access = True" >> ~/.jupyter/jupyter_notebook_config.py && \
echo "c.NotebookApp.port = 8765" >> ~/.jupyter/jupyter_notebook_config.py
Ответы (2 шт):
docker exec -it id_or_name_container cat /root/.local/share/jupyter/runtime/notebook_cookie_secret
или
docker exec -it id_or_name_container bash
cat /root/.local/share/jupyter/runtime/notebook_cookie_secret
Копируешь файл jupyter_notebook_config.py из контейнера себе на хост:
docker cp <container-name>:/root/.jupyter/jupyter_notebook_config.py .
(не забудь точку в конце)
Открываешь скопированный файл, в конце будет строчка с паролем - удаляешь/закомменчиваешь эту строчку. Копируешь файл обратно в контейнер:
docker cp jupyter_notebook_config.py <container-name>:/root/.jupyter/jupyter_notebook_config.py
Останавливаешь контейнер:
docker stop <container-name>
Запускаешь снова:
docker start <container-name>
Заходишь в его логи:
docker logs <container-name>
Там увидишь токен.
Открываешь в браузере: http://127.0.0.1:8080/?token=тут_твой_токен ну или вместо 8080 тот порт на который ты настроил контейнер.