Я изучаю Docker с конечной целью использования его для обслуживания и обмена ноутбуками Jupyter. Ниже приведен пример Dockerfile:Невозможно подключиться к ноутбуку Jupyter, обслуживаемому Docker
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. Если я подключаюсь к контейнеру через: docker exec -i -t container_id /bin/bash
, я могу tail -f /home/docker/output.txt
видеть, что я могу скрутить его из контейнера Docker. Аналогично ps auwx | grep 'jupyter'
подтверждает, что работает веб-сервер Jupyter Notebook.
Помимо привязки порта как такового 8888:8888
и EXPOSING
он в файле Dockerfile, что мне не хватает? Когда я подключаюсь к http://localhost:8888
, он говорит: «localhost не отправил никаких данных».
Я использую Docker для Mac версии 1.12.1-beta26.1 сборки 1200.
О, боже мой. Ха! Благодаря!!!! –