【问题标题】:Unable to connect to Jupyter Notebook served by Docker无法连接到 Docker 提供的 Jupyter Notebook
【发布时间】:2017-02-05 15:25:03
【问题描述】:

我一直在学习 Docker,最终目标是使用它来提供和共享 Jupyter Notebooks。下面是一个 Dockerfile 示例:

FROM python:2
ENV PYTHONUNBUFFERRED 1
RUN pip install jupyter

RUN useradd --create-home --home-dir /home/docker --shell /bin/bash docker
RUN adduser docker sudo

ADD start.sh /home/docker/start.sh
RUN chmod +x /home/docker/start.sh
RUN chown docker /home/docker/start.sh

ADD prod_sentiment.ipynb /home/docker/prod_sentiment.ipynb
ADD output.txt /home/docker/output.txt
RUN chmod +x /home/docker/output.txt
RUN chown docker /home/docker/output.txt

EXPOSE 8888
RUN usermod -a -G sudo docker
RUN echo "docker ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
USER docker

ENV HOME=/home/docker
ENV SHELL=/bin/bash
ENV USER=docker

RUN printenv
CMD ./home/docker/start.sh

start.sh 文件如下所示:

#! /bin/sh
echo 'starting'
nohup jupyter notebook --no-browser > /home/docker/output.txt

然后:

docker build --rm -t 'test' .
docker run -d -ti -p 8888:8888 test

从现在开始,我认为我应该能够导航到 localhost:8888 并查看 Jupyter Notebook。如果我通过以下方式连接到容器:docker exec -i -t container_id /bin/bash 我可以通过tail -f /home/docker/output.txt 看到我可以从 Docker 容器中卷曲它。同样ps auwx | grep 'jupyter' 确认 Jupyter Notebook 网络服务器正在运行。

除了在 Dockerfile 中将端口绑定为 8888:8888EXPOSING 之外,我还缺少什么?每当我连接到http://localhost:8888 时,它都会显示“本地主机没有发送任何数据”。

我正在使用 Docker for Mac 版本 1.12.1-beta26.1 build 1200。

【问题讨论】:

    标签: bash docker jupyter-notebook docker-for-mac


    【解决方案1】:

    你的问题是 jupyter 默认只监听环回接口。您可以通过使用选项 --ip=0.0.0.0 运行 jupyter 来更改此设置,这将导致它绑定到所有接口(在容器内)。

    编辑:还有一些关于这个in the jupyter documentation 的更多信息。加上他们在该文档中提供的示例:

    # Add Tini. Tini operates as a process subreaper for jupyter. This prevents
    # kernel crashes.
    ENV TINI_VERSION v0.6.0
    ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /usr/bin/tini
    RUN chmod +x /usr/bin/tini
    ENTRYPOINT ["/usr/bin/tini", "--"]
    
    EXPOSE 8888
    CMD ["jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0"]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-24
      • 1970-01-01
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多