адрес ноутбука докера jupyter никогда не отвечает / время ожидания - PullRequest
0 голосов
/ 19 декабря 2018

Попытка использовать jupyter-notebook на образе докера (https://hub.docker.com/r/tensorflow/tensorflow),), но проблема в том, что при использовании адреса переадресации порта в браузере просто зависает на главной странице (chrome), говорящей Waiting for 127.0.0..., пока не разout.

Выполняемая команда docker выглядит как

➜  ~ docker run -it -p 8888:8888 --rm tensorflow/tensorflow:latest-devel-gpu-py3 jupyter-notebook --ip 0.0.0.0 --no-browser --allow-root
[I 04:26:44.023 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[I 04:26:44.042 NotebookApp] Serving notebooks from local directory: /root
[I 04:26:44.043 NotebookApp] The Jupyter Notebook is running at:
[I 04:26:44.043 NotebookApp] http://(f1afd4b163fd or 127.0.0.1):8888/?token=5a838cefbd58822ce3de5a9ab00ed724bc6f9e048017125a
[I 04:26:44.043 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 04:26:44.043 NotebookApp] 

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://(f1afd4b163fd or 127.0.0.1):8888/?token=5a838cefbd58822ce3de5a9ab00ed724bc6f9e048017125a

(обратите внимание, также пытались docker run -it -p 8888:8888 --rm tensorflow/tensorflow:latest-devel-gpu-py3 /run_jupyter.sh --allow-root получить аналогичные результаты зависания).

Проверка docker ps показывает

➜  ~ docker ps
CONTAINER ID        IMAGE                                        COMMAND                  CREATED              STATUS              PORTS                              NAMES
2114609d6d9d        tensorflow/tensorflow:latest-devel-gpu-py3   "jupyter-notebook --…"   About a minute ago   Up About a minute   6006/tcp, 0.0.0.0:8888->8888/tcp   mystifying_liskov

Проверка ответа с помощью curl-шоу

➜  ~ curl -v http://127.0.0.1:8888/?token=5a838cefbd58822ce3de5a9ab00ed724bc6f9e048017125a
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)
> GET /?token=5a838cefbd58822ce3de5a9ab00ed724bc6f9e048017125a HTTP/1.1
> Host: 127.0.0.1:8888
> User-Agent: curl/7.47.0
> Accept: */*
> 

<at this point just hangs until I ctl+C out>


* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer

и просмотр портов с указанием

➜  ~ sudo netstat -plnt
[sudo] password for me: 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1512/sshd       
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2485/cupsd      
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      2284/smbd       
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1502/mysqld     
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      2284/smbd       
tcp        0      0 127.0.0.1:5037          0.0.0.0:*               LISTEN      8558/adb        
tcp        0      0 127.0.0.1:6000          0.0.0.0:*               LISTEN      1006/unicorn.rb --h
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1954/monitorix-http
tcp6       0      0 :::22                   :::*                    LISTEN      1512/sshd       
tcp6       0      0 ::1:631                 :::*                    LISTEN      2485/cupsd      
tcp6       0      0 :::445                  :::*                    LISTEN      2284/smbd       
tcp6       0      0 :::8888                 :::*                    LISTEN      32491/docker-proxy
tcp6       0      0 :::139                  :::*                    LISTEN      2284/smbd       
tcp6       0      0 :::80                   :::*                    LISTEN      1846/apache2 

Другой пост, который я видел, кажется, что люди простоне переадресовывать порт, который jupyter ожидает использовать, но это, похоже, не является проблемой. Это происходит независимо от того, какой образ докера используется (не только этот конкретный образ). Если у кого-то есть идеи о том, чем он может быть илиЛюбой совет по отладке будет оценен.

1 Ответ

0 голосов
/ 21 декабря 2018

Устранена проблема.

  1. Перезапустил хост-компьютер (обратите внимание, это был первый перезапуск с момента установки докера, но все еще не работал до ...)
  2. Ран sudo /etc/init.d/docker restart (Это было сделано исключительно на основе догадки при просмотре документации по устранению неполадок здесь: https://docs.docker.com/toolbox/faqs/troubleshoot/#configure-http-proxy-settings-on-docker-machines).
  3. Тогда оператор docker run ... из опубликованного вопроса сработал и теперь может достичь перенаправленногопорт на хост-машине и может curl адрес. Появилось уведомление Ubuntu, говорящее: «Проводное соединение установлено».

Это немного неубедительный ответ, но это то, что у меня сработало. Как ни странно.Кажется, иногда приходится перезапускать оператор sudo /etc/init.d/docker restart, чтобы открыть контейнеры Docker. Постараюсь узнать немного больше о том, что именно здесь происходит, но если кто-то с большим опытом думает, что знает, что, возможно, происходило, пожалуйста,дайте нам знать.

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