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

Как начать работу с ноутбуком joupter для докеров

Я установил контейнер докеров-тензоров на машине ubuntu. Указатель настроек тензора указывает:

docker run -it b.gcr.io/tensorflow/tensorflow

Это помещает меня в контейнер-терминал докера, и я могу запустить python и выполнить пример Hello World. Я также могу запустить вручную. \Run_jupyter.sh, чтобы запустить ноутбук jupyter. Однако я не могу добраться до ноутбука от хоста.

Как запустить jupyter-ноутбук, чтобы я мог использовать ноутбук с главной машины? В идеале я хотел бы использовать докер для запуска контейнера и запускать jupyter в одной команде.

4b9b3361

Ответ 1

Для Linux-сервера Роберт Грейвс ответ будет работать, но для Mac OS X или Windows еще многое предстоит сделать, поскольку докер работает на виртуальной машине.

Итак, чтобы начать запуск оболочки докера (или любой оболочки, если вы используете Linux) и выполните следующую команду для запуска нового контейнера TensorFlow:

docker run -p 8888:8888 -p 6006:6006 b.gcr.io/tensorflow/tensorflow ./run_jupyter.sh

Затем для Mac OS X и Windows вам нужно сделать следующее только один раз:

  • Открыть VirtualBox
  • Нажмите на docker vm (мой автоматически был назван по умолчанию)
  • Откройте настройки, щелкнув настройки
  • В настройках сети откройте диалоговое окно переадресации портов
  • Нажмите символ +, чтобы добавить другой порт и подключить порт от вашего Mac к виртуальной машине, заполнив диалоговое окно, как показано ниже. В этом примере я выбрал порт 8810, потому что я запускаю другие ноутбуки, используя порт 8888. введите описание изображения здесь
  • затем откройте браузер и подключитесь к http://localhost:8810 (или в зависимости от того, какой порт вы установили в разделе хост-порта
  • Сделайте свое приложение для обучения машинам с фантастическими штанами!

Ответ 2

Мой простой, но эффективный рабочий процесс:

TL; версия DR:

  • Откройте терминал быстрого запуска Docker. Если он уже открыт, запустите $ cd
  • Запустите этот один раз: $ docker run -it -p 8888:8888 -p 6006:6006 -v /$(pwd)/tensorflow:/notebooks --name tf b.gcr.io/tensorflow/tensorflow
  • Для запуска каждый раз: $ docker start -i tf

Если вы не в окнах, вы, вероятно, должны изменить /$(pwd) на $(pwd)

Вы получите пустую папку с именем tensorflow в своем домашнем каталоге для использования в качестве постоянного хранилища файлов проекта, таких как Ipython Notebooks и наборы данных.

Объяснение:

  • cd, чтобы убедиться, что вы находитесь в своем домашнем каталоге.
  • Титулы:
    • -it означает интерактивность, поэтому вы можете взаимодействовать с контейнером в терминальной среде.
    • -v host_folder:container_folder позволяет совместно использовать папку между хостом и контейнером. Хост-папка должна находиться внутри вашего домашнего каталога. /$(pwd) переводится в //c/Users/YOUR_USER_DIR в Windows 10. Эта папка рассматривается как каталог notebooks в контейнере, который используется Ipython/Jupyter Notebook.
    • --name tf присваивает контейнеру имя tf.
    • -p 8888:8888 -p 6006:6006 отображение портов контейнера для хоста, первая пара для ноутбука Jupyter, вторая для Tensorboard
  • -i означает интерактивный

Запуск TensorFlow в облаке

Ответ 3

После дальнейшего чтения документации docker у меня есть решение, которое работает для меня:

docker run -p 8888:8888 -p 6006:6006 b.gcr.io/tensorflow/tensorflow ./run_jupyter.sh

-p 8888: 8888 и -p 6006: 6006 выставляют порты контейнера хосту с тем же номером порта. Если вы просто используете -p 8888, будет назначен случайный порт на хосте.

../run_jupyter.sh сообщает docker, что делать в контейнере.

С помощью этой команды я могу использовать браузер на главной машине для подключения к http://localhost:8888/ и доступа к ноутбуку jupyter.

UPDATE: После борьбы с докером на окнах я переключился на машину Ubuntu с докером. Моя записная книжка стиралась между сессиями докеров, что имеет смысл после чтения дополнительной документации докеров. Ниже приведена обновленная команда, которая также монтирует каталог хоста в контейнере и запускает jupyter, указывающий на эту смонтированную директорию. Теперь мой ноутбук сохраняется на хосте и будет доступен в следующий раз при запуске тензорного потока.

docker run -p 8888:8888 -p 6006:6006 -v /home/rob/notebook:/notebook b.gcr.io/tensorflow/tensorflow sh -c "jupyter notebook /notebook"

Ответ 4

Эти шаги работали для меня, если вы являетесь полным docker noob с помощью Windows-машины.

Версии: Windows 8.1, докер 1.10.3, tensorflow r0.7

  • Запустить терминал быстрого запуска Docker
  • После загрузки обратите внимание на адрес ip. Если вы не можете найти его, используйте этот docker-machine ip и сделайте заметку. Позволяет называть его "ip-адресом". Будет выглядеть примерно так: 192.168.99.104 (я составил этот ip-адрес)
  • Вставьте эту команду на терминал докера:

    docker run -p 8888:8888 -p 6006:6006 b.gcr.io/tensorflow/tensorflow.

    Если вы запускаете это в первый раз, он загрузит и установит изображение на этом легком весе vm. Затем он должен сказать: "Блокнот Jupyter работает на..." → Это хороший знак!

  • Откройте браузер: <your ip address (see above)>:8888. Например. 192.168.99.104:8888/
  • Надеемся, вы сможете увидеть свои файлы ipython.

Ответ 5

Jupyter теперь имеет возможность запускать Изображение Docker для TensorFlow:

docker run -d -v $(pwd):/home/jovyan/work -p 8888:8888 jupyter/tensorflow-notebook

Ответ 6

Чтобы запустить его под гипер-v. Выполните следующие шаги:

1) Создайте виртуальную машину докера с помощью https://blogs.msdn.microsoft.com/scicoria/2014/10/09/getting-docker-running-on-hyper-v-8-1-2012-r2/, это даст вам рабочий контейнер докеров. Вы можете подключиться к нему через консоль или через ssh. Я бы поставил по крайней мере 8 гб памяти, так как я уверен, что это будет использовать много памяти.

2) запустите "ifconfig", чтобы определить IP-адрес Docker VM

3) В командной строке командной строки докера:

docker run -p 8888: 8888 -p 6006: 6006 -it b.gcr.io/tensorflow/tensorflow

4) Подключите к Jupyter Workbench с помощью http:/[ifconfig address]: 8888/

Ответ 7

Чтобы немного убрать вещи, я хочу дать некоторые дополнительные объяснения, потому что я также сильно потрудился настроить докер с тензорным потоком. Для этого я отношусь к этому видео, которое, к сожалению, не является самоочевидным во всех случаях. Я предполагаю, что вы уже установили докер. На самом деле интересная общая часть видео начинается с минуты 0:44, где он наконец начал докер. До тех пор, пока он не загрузил ретрансляцию тензора в папку, он затем подключается к контейнеру. Вы можете, конечно, положить что-нибудь еще в контейнер и получить доступ к нему позже в виртуальной машине докера.


  • Сначала он запускает длинную команду docker docker run –dit -v /c/Users/Jay/:/media/disk –p 8000 –p 8888 –p 6006 b.gcr.io/tensorflow/tensorflow. Команда "run" запускает контейнеры. В этом случае он запускает контейнер "b.gcr.io/tensorflow/tensorflow", адрес которого указан в учебнике по установке док-станции Tenorflow. Контейнер будет загружен докерером, если он уже не доступен локально. Затем он дает два дополнительных аргумента: он монтирует папку хост-системы по заданному пути к контейнеру. Не забудьте указать раздел в начале (например, "/c/" ). Кроме того, он объявляет, что порты доступны позже с главной машины с параметрами -p. Из всей этой команды вы возвращаете [CONTAINER_ID] этого выполнения контейнера! Вы всегда можете увидеть текущие запущенные контейнеры, запустив "docker ps" в консоли докера. Ваш контейнер, созданный выше, должен появиться в этом списке с тем же идентификатором.


  • Следующий шаг: при запуске вашего контейнера теперь вы хотите что-то выполнить в нем. В нашем случае ноутбук jupyter или тензорный поток или что-то еще: для этого вы делаете docker для выполнения bash во вновь создаваемом контейнере: docker exec –ti [CONTAINER_ID] bash. Теперь эта команда запускает оболочку bash на вашем контейнере. Вы видите это, потому что теперь "$" изменился на root @[CONTAINER_ID]:. Отсюда нет пути назад. Если вы хотите вернуться на терминал докеров, вам нужно запустить еще одну новую консоль докеров, как в минуту 1:10. Теперь с помощью оболочки bash, запущенной в контейнере, вы можете делать все, что хотите, и выполнять Jupiter или тензорный поток или что-то еще. Папка хост-системы, которую вы указали в команде запуска, должна быть доступна в разделе "/media/disk".


  • Последний шаг доступа к выходу VM. Мне все еще не хотелось работать, и я не мог получить доступ к своей записной книжке. Вы все равно должны найти правильный IP и порт для доступа к запущенному ноутбуку, сеансу тензображения или тому подобное. Сначала узнайте главный IP-адрес, используя docker-machine –ls. В этом списке вы получите URL-адрес. (Если это ваш единственный контейнер, он называется по умолчанию.) Вы можете оставить предоставленный здесь порт. Затем из docker ps вы получаете список переадресованных портов. Когда в списке записано 0.0.0.32776- > 6006/tcp, вы можете получить к нему доступ с хост-машины, используя порт, указанный в первую очередь (Awkyard). Так что в моем случае выполненный тензор в контейнере сказал "запущен на порту 6006". Затем с моей хост-машины мне нужно было войти http://192.168.99.100:32776/ для доступа к ней.

- > И вот оно! Это побежало для меня вот так!

Ответ 8

Он дает подсказку терминала:

FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd vdocker') DO %i
docker run -it tensorflow/tensorflow:r0.9-devel

или

FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd vdocker') DO %i
docker run -it b.gcr.io/tensorflow/tensorflow:latest-devel

У вас должен быть "vdocker" или изменить vdocker на "default".

Ответ 9

По какой-то причине я столкнулся с одной дополнительной проблемой, которую мне нужно преодолеть за пределами предоставленных примеров, используя флаг --ip:

nvidia-docker run --rm \
  -p 8888:8888 -p 6006:6006 \
  -v `pwd`:/root \
  -it tensorflow/tensorflow:latest-devel-gpu-py3 sh -c "jupyter notebook --ip 0.0.0.0 ."

И затем я могу получить доступ через http://localhost:8888 с моей машины. В некотором смысле это имеет смысл; в контейнере, который вы связываете с 0.0.0.0, который представляет все доступные адреса. Но нужно ли мне это делать, кажется, меняться (например, я начал использовать ноутбуки с помощью jupyter/scipy-notebook, не делая этого).

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