首页 > 解决方案 > 无法在 docker (mac) 中访问 jupyter notebook

问题描述

我想将 jupyter notebook 安装到我的 docker 映像中。在容器中安装并运行后,我无法从浏览器访问它。

这是我的最小设置:

Dockerfile:

FROM python:3.7.5
RUN pip install jupyterlab
EXPOSE 8888
CMD jupyter-lab --allow-root

命令

docker build -t my_image .
docker run -p 8888:8888 my_image

容器输出:

    To access the server, open this file in a browser:
        file:///root/.local/share/jupyter/runtime/jpserver-7-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/lab?token=e6b9a5dd573aabc52e6753e7b21f0daf6270e685055afa50
     or http://127.0.0.1:8888/lab?token=e6b9a5dd573aabc52e6753e7b21f0daf6270e685055afa50

我尝试打开这些链接中的任何一个,并在浏览器中收到此消息:

This page isn’t working
localhost didn’t send any data.
ERR_EMPTY_RESPONSE

我究竟做错了什么?

标签: macosdockerjupyter-notebook

解决方案


默认情况下,Jupyter 配置为仅侦听 localhost 接口,您需要将其配置为侦听 0.0.0.0(容器的 localhost 不是您的主机 localhost..)

CMDDockerfile 中的行更改为CMD jupyter-lab notebook --ip 0.0.0.0 --port 8888 --allow-root

jupyter_notebook_config.py在容器/图像中编辑:
更改以 to 开头的c.NotebookApp.allow_originc.NotebookApp.allow_origin = '*'
并更改以 to 开头的c.NotebookApp.ipc.NotebookApp.ip = '0.0.0.0'

使用此问题寻求帮助:为什么我无法访问远程 Jupyter Notebook 服务器?


推荐阅读