Docker jupyter notebook использует идентификатор контейнера в качестве ip, localhost - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь запустить блокнот jupyter в Docker на основе python 3. Блокнот запускается, но отображает идентификатор контейнера в виде ip.Это работает, если я изменю его на «localhost:» в браузере после открытия ссылки.

Как заставить его работать правильно и показывать localhost: в URL?/ os: Ubuntu 18.04 /

РЕДАКТИРОВАТЬ: я пробовал jupyter / minimal-notebook , и он работает, показывает localhost, но он основан на Ubuntu 18.04, который не совместим с некоторымипакеты, которые я хочу использовать позже в записных книжках.

Dockerfile:

FROM python:3
RUN apt-get -y update \
&& apt-get upgrade -y \
&& apt-get install -y \
    curl \
    vim \
    xterm
RUN pip install --upgrade pip
RUN pip install --no-cache-dir jupyter numpy matplotlib
# 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", "--allow-root"]

Запуск после сборки

docker run --rm -it -p 8888:8888 -v "$PWD":/home/work e4b37115446d

Вывод:

[I 11:48:12.580 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[I 11:48:12.826 NotebookApp] Serving notebooks from local directory: /
[I 11:48:12.826 NotebookApp] 0 active kernels
[I 11:48:12.826 NotebookApp] The Jupyter Notebook is running at:
[I 11:48:12.826 NotebookApp] http://3b906c2d97f3:8888/?token=06d43a78966a7b7e5fd04318183fa3e7af5bca7542477d31
[I 11:48:12.826 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 11:48:12.827 NotebookApp] 

    Copy/paste this URL into your browser when you connect for the first time, to login with a token:
        http://3b906c2d97f3:8888/?token=06d43a78966a7b7e5fd04318183fa3e7af5bca7542477d31&token=06d43a78966a7b7e5fd04318183fa3e7af5bca7542477d31

1 Ответ

0 голосов
/ 03 июня 2018

Используйте флаг --hostname при запуске контейнера.Если вы оставите это поле пустым, по умолчанию будет указано имя контейнера.

docker run --rm  -it -p 8888:8888 --hostname localhost jup

При запуске:

[I 14:58:32.508 NotebookApp] The Jupyter Notebook is running at:
[I 14:58:32.508 NotebookApp] http://localhost:8888/?token=0e59cd9003b843f529b9bc6e7b39921001ddfdb253c029e9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...