Подтвердить что ты не робот

Доступ к ноутбуку Jupyter, работающему на контейнере Docker

Я создал изображение докеров с библиотеками python и Jupyter. Я запускаю контейнер с опцией -p 8888:8888, чтобы связывать порты между хостом и контейнером. Когда я запускаю ядро ​​Jupyter внутри контейнера, он работает на localhost:8888 (и не находит браузер). Я использовал команду jupyter notebook

Но с моего хоста, какой IP-адрес я должен использовать для работы с Jupyter в браузере хоста?

С помощью команды ifconfig я нахожу eth0, docker, wlan0, lo...

Спасибо!

4b9b3361

Ответ 1

Вам нужно запустить свой ноутбук на 0.0.0.0: jupyter notebook -i 0.0.0.0. Запуск на localhost делает его доступным только изнутри контейнера.

Ответ 2

Хост-машина: docker run -it -p 8888:8888 image:version

Внутри контейнера: jupyter notebook --ip 0.0.0.0 --no-browser --allow-root

Хост-машина имеет доступ к этому URL: localhost:8888/tree‌​

При первом входе в систему на терминале будет отображаться ссылка для входа с помощью токена.

Ответ 3

Чтобы получить ссылку на ваш сервер ноутбуков Jupyter:

После вашей команды docker run автоматически создается гиперссылка. Это выглядит примерно так: http://localhost:8888/?token=f3a8354eb82c92f5a12399fe1835bf8f31275f917928c8d2 :: /home/jovyan/work

Если вы хотите снова получить ссылку позже по строке, вы можете ввести docker exec -it <docker_container_name> jupyter notebook list.

Ответ 4

Вы можете использовать команду jupyter notebook --allow-root --ip[of your container] или предоставить доступ ко всем ip с помощью опции --ip0.0.0.0.

Ответ 5

Познакомьтесь с проектом Torus, который недавно открыл Manifold. Мы хотели, чтобы наши инженеры ML могли легко приступить к работе над новыми проектами с согласованной средой разработки для всей команды. Этот Python cookiecutter создаст для вас новую структуру проекта, которая включает в себя Dockerfile, использующий предварительно запеченный образ ML dev, который мы поместили в Docker Hub, и конфигурацию Docker Compose, которая позаботится обо всей переадресации портов за вас. Конфигурация написана для выбора открытого порта на вашем хост-компьютере для пересылки на сервер ноутбука, работающий на 8888 внутри контейнера. Больше не нужно запускать несколько серверов ноутбуков на своем компьютере! Проверьте это, надеюсь, это полезно!

Репозиторий Github: https://github.com/manifoldai/docker-cookiecutter-data-science

Почему мы это сделали (с демо): https://medium.com/manifold-ai/torus-a-toolkit-for-docker-first-data-science-bddcb4c97b52

Ответ 6

Команда docker run обязательна, чтобы открыть порт для контейнера, чтобы разрешить подключение через браузер хоста, назначив порт для контейнера docker с помощью -p, выберите изображение jupyter из ваших docker images.

docker run -it -p 8888:8888 image:version

Внутри контейнера запустите блокнот, назначив открытый порт:

jupyter notebook --ip 0.0.0.0 --port 8888 --no-browser --allow-root

Получите доступ к записной книжке через браузер настольных компьютеров по адресу http://localhost: 8888. Записная книжка запросит у вас токен, сгенерированный при создании записной книжки.

Ответ 7

В контейнере вы можете запустить следующее, чтобы сделать его доступным на вашем локальном компьютере (используя IP-адрес док-машины).

блокнот jupyter --ip 0.0.0.0 --allow-root

Вам может не потребоваться указывать флаг --allow-root в зависимости от настроек вашего контейнера.

Ответ 8

Ниже показано, как запустить его в Windows 7 с помощью панели инструментов Docker.

Если вы используете панель инструментов Docker, откройте терминал быстрого запуска Docker и запишите IP-адрес здесь:

docker is configured to use the default machine with IP 192.168.99.100
For help getting started, check out the docs at https://docs.docker.com

После того, как вы запустите команды docker с веб-сайта установки tenorflow:

docker pull tensorflow/tensorflow                  # Download latest image
docker run -it -p 8888:8888 tensorflow/tensorflow  # Start a Jupyter notebook server

Вы получите сообщение, подобное этому:

Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
    http://127.0.0.1:8888/?token=d6e80acaf08e09853dc72f6b0f022b8225f94f

На хосте замените 127.0.0.1 на 192.168.99.100 и используйте оставшуюся часть этого URL