我如何启动tensorflow docker jupyter notebook

Rob*_*ves 48 docker jupyter tensorflow

我在ubuntu机器上安装了tensorflow docker容器.tensorflow docker 设置说明指定:

docker run -it b.gcr.io/tensorflow/tensorflow
Run Code Online (Sandbox Code Playgroud)

这使我进入docker容器终端,我可以运行python并执行Hello World示例.我也可以手动运行.\ run_jupyter.sh来启动jupyter笔记本.但是,我无法从主机到达笔记本电脑.

如何启动jupyter笔记本,以便我可以使用主机上的笔记本电脑?理想情况下,我想使用docker启动容器并在单个命令中启动jupyter.

Cra*_*aig 47

对于Linux主机,Robert Graves的回答是可行的,但对于Mac OS X或Windows,还有更多工作要做,因为docker在虚拟机中运行.

因此,要开始启动docker shell(或任何shell,如果您使用的是Linux)并运行以下命令来启动新的TensorFlow容器:

docker run -p 8888:8888 -p 6006:6006 b.gcr.io/tensorflow/tensorflow ./run_jupyter.sh
Run Code Online (Sandbox Code Playgroud)

然后,对于Mac OS X和Windows,您只需执行以下一次:

  1. 打开VirtualBox
  2. 点击docker vm(我的自动命名为"默认")
  3. 单击设置打开设置
  4. 在网络设置中打开端口转发对话框
  5. 单击+符号以添加另一个端口,并通过填写如下所示的对话框将mac中的端口连接到VM.在这个例子中,我选择了端口8810,因为我使用端口8888运行其他笔记本电脑. 在此输入图像描述
  6. 然后打开浏览器并连接到http:// localhost:8810(或您在主机端口部分设置的任何端口
  7. 让你的花式裤机学习应用程序!

  • 克雷格,谢谢我按照你的指示在Windows中运行.在Windows上,我无法在Docker Quickstart Terminal中使用它.终端无法正确处理正斜杠/.使用PowerShell确实有效.通过启动Kinematic然后单击应用程序左下角的"Docker CLI",我获得了所有正确环境变量的PowerShell. (3认同)
  • 当Docker安装在Windows(也可能是OS X)时,它默认为1个处理器和1GB RAM.如果您的计算机可以处理它,我建议更改VM设置以添加更多处理器和内存. (2认同)

Tho*_*ran 17

我简单而有效的工作流程:

TL; DR版本:

  1. 打开Docker快速入门终端.如果它已经打开,请运行$ cd
  2. 运行一次:$ docker run -it -p 8888:8888 -p 6006:6006 -v /$(pwd)/tensorflow:/notebooks --name tf b.gcr.io/tensorflow/tensorflow
  3. 每次开始: $ docker start -i tf

如果你不在Windows上,你应该/$(pwd)改为$(pwd)

您将获得一个tensorflow在您的主目录中命名的空文件夹,以用作项目文件的持久存储,例如Ipython笔记本和数据集.

说明:

  1. cd 确保您在主目录中.
  2. PARAMS:
    • -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
  3. -i 代表互动

在云上运行TensorFlow


Rob*_*ves 10

在进一步阅读docker文档后,我有一个适合我的解决方案:

docker run -p 8888:8888 -p 6006:6006 b.gcr.io/tensorflow/tensorflow ./run_jupyter.sh
Run Code Online (Sandbox Code Playgroud)

-p 8888:8888和-p 6006:6006将容器端口暴露给同一端口号上的主机.如果您只使用-p 8888,将分配主机上的随机端口.

./run_jupyter.sh告诉docker在容器中执行什么.

使用此命令,我可以使用主机上的浏览器连接到http:// localhost:8888 /并访问jupyter笔记本.

更新:在Windows上与docker进行摔跤后,我切换回带有docker的Ubuntu机器.在阅读更多docker文档后,我的笔记本在docker会话之间被删除了.这是一个更新的命令,它还在容器中安装主机目录并启动指向该安装目录的jupyter.现在我的笔记本保存在主机上,下次启动tensorflow时可用.

docker run -p 8888:8888 -p 6006:6006 -v /home/rob/notebook:/notebook b.gcr.io/tensorflow/tensorflow sh -c "jupyter notebook /notebook"
Run Code Online (Sandbox Code Playgroud)


Rus*_*ush 5

Jupyter 现在已经准备好运行TensorFlow 的Docker 镜像

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