【问题标题】:Docker - Connecting to Jupyter notebookDocker - 连接到 Jupyter 笔记本
【发布时间】:2021-02-16 19:54:15
【问题描述】:

我正在尝试在 docker 中运行 Jupyter notebook,因为我尝试了命令 -

docker run -p 8888:8888 jupyter/scipy-notebook 

Executing the command: jupyter notebook
[I 04:19:53.460 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
[I 04:19:53.856 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.8/site-packages/jupyterlab
[I 04:19:53.856 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 04:19:53.859 NotebookApp] Serving notebooks from local directory: /home/jovyan
[I 04:19:53.859 NotebookApp] Jupyter Notebook 6.1.4 is running at:
[I 04:19:53.859 NotebookApp] http://ed93c6a6ff91:8888/?token=40c97f5c727829f0c094449618af1cad30d56a8d5c252b6c
[I 04:19:53.859 NotebookApp]  or http://127.0.0.1:8888/?token=40c97f5c727829f0c094449618af1cad30d56a8d5c252b6c
[I 04:19:53.859 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 04:19:53.861 NotebookApp] 
    
    To access the notebook, open this file in a browser:
        file:///home/jovyan/.local/share/jupyter/runtime/nbserver-6-open.html
    Or copy and paste one of these URLs:
        http://ed93c6a6ff91:8888/?token=40c97f5c727829f0c094449618af1cad30d56a8d5c252b6c
     or http://127.0.0.1:8888/?token=40c97f5c727829f0c094449618af1cad30d56a8d5c252b6c

当我尝试使用以下 url 连接到笔记本时(我尝试了三种不同的浏览器)-

file:///home/jovyan/.local/share/jupyter/runtime/nbserver-6-open.html 
OR  
http://ed93c6a6ff91:8888/?token=40c97f5c727829f0c094449618af1cad30d56a8d5c252b6c

我收到错误代码 ERR_NAME_NOT_RESOLVED 无法立即访问该站点的错误,同时使用该 url -

http://127.0.0.1:8888/?token=40c97f5c727829f0c094449618af1cad30d56a8d5c252b6c

浏览器会继续尝试连接一段时间,然后得到 ERR_CONNECTION_RESET

我试图禁用我的 VPN。我还尝试使用 export no_proxy=127.0.0.1 设置 no_proxy 变量,但我仍然无法连接到 jupyter notebook。

操作系统 - Manjaro Linux

泊坞窗图片 -

REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
jupyter/scipy-notebook   latest              b8f7562c1262        4 days ago          2.7GB

任何关于如何排除故障和连接到笔记本的帮助或指导都会很有帮助。

【问题讨论】:

    标签: python docker jupyter-notebook


    【解决方案1】:
    Or copy and paste one of these URLs:
            http://ed93c6a6ff91:8888/?token=40c97f5c727829f0c094449618af1cad30d56a8d5c252b6c
         or http://127.0.0.1:8888/?token=40c97f5c727829f0c094449618af1cad30d56a8d5c252b6c
    

    ↑ 那是你的 docker 容器 IP 和主机名。您需要使用 docker 容器外部的 IP 进行连接。

    例如如果你的 docker 主机(物理 linux 机器)IP 是 192.168.0.100 尝试访问

    http://192.168.0.100:8888/?token=40c97f5c727829f0c094449618af1cad30d56a8d5c252b6c
    

    如果在这种情况下无法访问,请尝试通过运行设置主机IP

    docker run -p 192.168.0.100:8888:8888 jupyter/scipy-notebook 
    
    • 编辑 1. 如何检查打开的端口。

    尝试运行

    sudo netstat -ntpl | grep 8888
    

    如果你会看到类似的东西

    tcp6       0      0 :::8888                 :::*                    LISTEN      1234/docker-proxy
    

    或者

    tcp       0      0 0.0.0.0:8888                 0.0.0.0:*                    LISTEN      1234/docker-proxy
    

    这意味着您的 docker 运行良好并将 8888 端口转发到所有本地 IP(包括本地主机)。
    因此,如果您可以看到打开的端口但无法连接,则很可能是防火墙。

    【讨论】:

    • 如果我物理登录到服务器,为什么无法直接访问localhost?
    • @Jack 哦,如果 browser host == docker host 你应该可以通过 127.0.0.1 连接。我不熟悉 Manjaro,也许防火墙或 selinux 会阻止您的流量?我将在我的答案中添加netstat 命令,以便您检查系统中打开了哪些端口。
    猜你喜欢
    • 2017-09-24
    • 2022-12-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多