我正在尝试在我的Mac笔记本电脑上安装Jupyter Notebook Docker容器。使用以下选项:
docker run -dit --rm -p 8888:8888 gcr.io/tensorflow/tensorflow
容器启动后,我可以像预期的那样通过http://[cointainer-IP]:8888访问它。
但是它带我到一个身份验证屏幕,并要求输入令牌。我该如何获取该令牌?在 Docker 容器中应查找哪个日志?
我正在尝试在我的Mac笔记本电脑上安装Jupyter Notebook Docker容器。使用以下选项:
docker run -dit --rm -p 8888:8888 gcr.io/tensorflow/tensorflow
容器启动后,我可以像预期的那样通过http://[cointainer-IP]:8888访问它。
但是它带我到一个身份验证屏幕,并要求输入令牌。我该如何获取该令牌?在 Docker 容器中应查找哪个日志?
容器的stdout
将提供给您一个特殊的URL,其中包含一个令牌以便您登录。您可以在前台运行(不带-d
)或者使用docker logs <container_id>
检查当前容器的日志。在那里,您应该会看到以下类似的输出:
[I 16:57:05.859 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 16:57:05.871 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 16:57:05.877 NotebookApp] Serving notebooks from local directory: /notebooks
[I 16:57:05.877 NotebookApp] 0 active kernels
[I 16:57:05.877 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/?token=42685cc246e6571c0f16417327fbf4c398061125c00edea5
[I 16:57:05.877 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 16:57:05.878 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=42685cc246e6571c0f16417327fbf4c398061125c00edea5
--NotebookApp.token=''
参数禁用令牌或添加自定义令牌到start-notebook.sh
脚本中。从终端复制令牌通常会导致错误并且不太方便。
docker run -d -p 8888:8888 jupyter/pyspark-notebook start-notebook.sh --NotebookApp.token=''
然而,这并不推荐使用,并且您可以选择定义一个简单的密码:
docker run -d -p 8888:8888 jupyter/pyspark-notebook start-notebook.sh --NotebookApp.token='MY_EASY_PASSWORD'
docker run
中禁用了密码。 - Bruce wayne - The Geek Killer我为自己编写了以下代码,以便自动打开浏览器并输入身份验证:
最初的回答:
docker exec -it <docker container name> bash -c 'jupyter notebook list' | grep http | cut -f1 -d ' ' | xargs xdg-open
适用于Ubuntu 18.04操作系统
docker exec -it <docker-container-name> bash -c 'jupyter notebook list'
就是解决方案。不过还是感谢你的回复! - Gabriel Zieglerwhich: no firefox-bin in (/opt/firefox-nightly) Opening in existing browser session.
- Gabriel Ziegler运行以下命令并复制容器ID号:
docker ps -a
docker logs <containerid>
http://127.0.0.1:8888/lab?token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
以防其他人遇到和我一样的情况:我解决这个问题的唯一方法(感谢@user3780173在被接受的答案中的评论)是关闭我在主机上运行的另一个jupyter实例。只有这样,我才能在docker中打开笔记本。在此之前,我输入了由docker生成的令牌,但始终收到“凭据无效”的消息。
lsof -ti:8888 | xargs kill -9
杀死占用8888端口的进程后,我不再收到烦人的令牌消息了。 - Georgy