我正在尝试从Docker容器访问使用django-extensions的shell_plus
命令创建的Jupyter Notebook。
docker-compose -f local.yml run --rm django python manage.py shell_plus --notebook
我的配置基于@RobM和@Mark Chackerian在此Stack Overflow问题的答案。也就是说,我安装并配置了一个自定义内核,并且我的Django应用程序配置文件中有一个名为NOTEBOOK_ARGUMENTS
的常量被设置为:
NOTEBOOK_ARGUMENTS = [
'--ip', '0.0.0.0',
'--port', '8888',
'--allow-root',
'--no-browser',
]
我可以在日志中看到容器成功启动:
[I 12:58:54.877 NotebookApp] The Jupyter Notebook is running at:
[I 12:58:54.877 NotebookApp] http://10d56bab37fc:8888/?token=b2678617ff4dcac7245d236b6302e57ba83a71cb6ea558c6
[I 12:58:54.877 NotebookApp] or http://127.0.0.1:8888/?token=b2678617ff4dcac7245d236b6302e57ba83a71cb6ea558c6
但是我无法打开这个网址。 我在我的
docker-compose
中转发了端口8888,尝试使用localhost
代替127.0.0.1
,并且还尝试使用容器的IP地址,但都没有成功。感觉我错过了一些显而易见的东西... 感谢任何帮助。
NOTEBOOK_ARGUMENTS
,并且需要将端口8888
映射到容器外部(例如使用-p
参数)。 - n1_settings.py
中设置DJANGO_ALLOW_ASYNC_UNSAFE
,我建议把它移到docker-compose exec -e DJANGO_ALLOW_ASYNC_UNSAFE=true web python manage.py shell_plus --notebook
。 - dyz