Не удается запустить ноутбук Jupyter из этого контейнера докера - PullRequest
0 голосов
/ 08 марта 2019

Ради любви я не могу запустить Jupyter из контейнера Docker.Моя ОС:

Software:

    System Software Overview:

      System Version: macOS 10.13.6 (17G5019)
      Kernel Version: Darwin 17.7.0
      Boot Volume: Macintosh HD
      Boot Mode: Normal
      Secure Virtual Memory: Enabled
      System Integrity Protection: Enabled
      Time since boot: 1:10

Dockerfile:

FROM tensorflow/tensorflow:latest-py3-jupyter

LABEL maintainer="xxxx"

ADD Mask_RCNN/ /Mask_RCNN/

ADD startup.sh /

RUN apt-get -y update

WORKDIR /

RUN pip3 install -r /Mask_RCNN/requirements.txt

RUN cd /Mask_RCNN/ && python3 setup.py install

CMD /startup.sh

Файл startup.sh просто

#!/bin/sh

/bin/bash -c "jupyter notebook --allow-root --no-browser --NotebookApp.token='sometoken'"

Образ Docker создается без проблем, сследующая команда:

docker image build --build-arg http_proxy=someproxy --build-arg https_proxy=someproxy --build-arg no_proxy=localhost -t mask-rcnn:v20190308 .

Я запускаю контейнер с

docker container run -e http_proxy=someproxy -e https_proxy=someproxy -e no_proxy=localhost --rm -it --name mask-rcnn   -p 6067:8888  mask-rcnn:v20190308

и получаю следующую ошибку:

[I 10:44:10.991 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
Traceback (most recent call last):
  File "/usr/local/bin/jupyter-notebook", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.5/dist-packages/jupyter_core/application.py", line 266, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/traitlets/config/application.py", line 657, in launch_instance
    app.initialize(argv)
  File "</usr/local/lib/python3.5/dist-packages/decorator.py:decorator-gen-7>", line 2, in initialize
  File "/usr/local/lib/python3.5/dist-packages/traitlets/config/application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/notebook/notebookapp.py", line 1628, in initialize
    self.init_webapp()
  File "/usr/local/lib/python3.5/dist-packages/notebook/notebookapp.py", line 1407, in init_webapp
    self.http_server.listen(port, self.ip)
  File "/usr/local/lib/python3.5/dist-packages/tornado/tcpserver.py", line 143, in listen
    sockets = bind_sockets(port, address=address)
  File "/usr/local/lib/python3.5/dist-packages/tornado/netutil.py", line 168, in bind_sockets
    sock.bind(sockaddr)
OSError: [Errno 99] Cannot assign requested address

Что происходит?Я подключил порт ноутбука Jupyter (8888) к порту контейнера (6067), поэтому не понимаю, в чем проблема.

1 Ответ

0 голосов
/ 08 марта 2019

Очевидно, просто изменив сценарий startup.sh на

/bin/bash -c "jupyter notebook --ip 0.0.0.0 --allow-root --no-browser --NotebookApp.token='sometoken'"

, все исправили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...