当前位置: 首页 > 知识库问答 >
问题:

如何运行Tensorboard和jupyter与docker同时?

程钧
2023-03-14

我开始学习如何使用TensorFlow进行机器学习。发现docker在我的机器上部署TensorFlow非常方便。然而,我能找到的例子对我的目标设定不起作用。那是

在ubuntu16.04操作系统下,使用nvidia-docker同时托管jupyter和拉伸板服务(可以是两个容器或一个容器有两个服务)。从jupyter创建的文件应该对主机操作系统可见。

  • Ubuntu 16.04
  • 多克尔
  • nvidia-docker
    • 朱庇特
    • Tensorboard

    木星容器

    nvidia-docker run \
        --name jupyter \
        -d \
        -v $(pwd)/notebooks:/root/notebooks \
        -v $(pwd)/logs:/root/logs \
        -e "PASSWORD=*****" \
        -p 8888:8888 \
        tensorflow/tensorflow:latest-gpu 
    

    张力板容器

    nvidia-docker run \
        --name tensorboard \
        -d \
        -v $(pwd)/logs:/root/logs \
        -p 6006:6006 \
        tensorflow/tensorflow:latest-gpu \
        tensorboard --logdir /root/logs
    

    我尝试将logs文件夹装载到这两个容器中,并让Tensorboard访问jupyter的结果。但这座山似乎起了作用。当我在带有笔记本文件夹的jupyter容器中创建新文件时,主机文件夹$(pwd)/笔记本只会显示为空。

    我还遵循了Nvidia Docker、Jupyter笔记本和Tensorflow GPU中的说明

    nvidia-docker run -d -e PASSWORD='winrar' -p 8888:8888 -p 6006:6006 gcr.io/tensorflow/tensorflow:latest-gpu-py3
    

    只有Jupyter工作,张板无法从6006端口到达。

共有2个答案

景胜涝
2023-03-14

作为替代方案,您还可以使用ML Workspace Docker映像。ML工作区是一个web IDE,它结合了Jupyter、TensorBoard、VS代码和许多其他工具

docker run -p 8080:8080 mltooling/ml-workspace:latest

所有工具都可以从同一端口访问。您可以在这里找到有关如何访问TensorBoard的信息。

濮丁雷
2023-03-14

我今天也面临同样的问题。

简短的回答:我将假设您使用相同的容器为Jupyter笔记本和单板。因此,正如您所写的,您可以通过以下方式部署容器:

nvidia-docker run -d --name tensor -e PASSWORD='winrar'\
                  -p 8888:8888 -p 6006:6006 gcr.io/tensorflow/tensorflow:latest-gpu-py3

现在您可以访问8888和6006端口,但首先需要初始化tensorboard:

docker exec -it tensor bash
tensorboard --logdir /root/logs

关于另一个选项:在不同的容器中运行jupyter和tensorboard。如果在不同的容器中装载相同的目录时遇到问题(过去有一个bug),自Docker 1.9以来,您可以创建与特定容器未链接的独立卷。这可能是一个解决办法。

  1. 创建两个卷来存储日志和笔记本。
  2. 用这些卷部署两个图像。
docker volume create --name notebooks
docker volume create --name logs 
nvidia-docker run \
--name jupyter \
-d \
-v notebooks:/root/notebooks \
-v logs:/root/logs \
-e "PASSWORD=*****" \
-p 8888:8888 \
tensorflow/tensorflow:latest-gpu
 nvidia-docker run \
 --name tensorboard \
 -d \
 -v logs:/root/logs \
 -p 6006:6006 \
 tensorflow/tensorflow:latest-gpu \
 tensorboard --logdir /root/logs
 类似资料:
  • Jupyter 是个好东西,提供了简单易用的 web REPL 环境,并且可以根据工作语言选配不同的 kernel 提供不同的功能。但是,由于常常用作测试所用,因此对于我这样的“洁癖患者”来说,保持后台常驻和环境清洁实在是非常终于,于是我想到了 docker,实在是 Jupter 运行容器的不二之选。 本来打算自己定制一个的,不过一番搜索后发现官方提供了更为详细和成熟的 docker 镜像,实在是

  • 问题内容: Android Emulator与Hyper-V不兼容,但Docker依赖Hyper-V。 有什么解决方案可以同时运行它们吗? 问题答案: Android模拟器现在可以在Hyper-V上运行。从@tmanolatos答案中, 步骤如下: 在开始菜单中搜索以下内容 Turn Windows Features on or off 勾选方块 Windows Hypervisor platfo

  • 我想制作一个易于运行的 jupyter 笔记本,它支持 OpenCV,并作为 Docker 映像提供。 这个概念是让一个 docker 容器运行 jupyter 内核,并通过主机中的浏览器访问笔记本。类似的东西。 但是,问题是OpenCV似乎依赖于正在运行的Gtkenvironment.So尝试运行以下代码: 导致jupyter内核崩溃: 有没有办法绕过这种依赖关系,让在泊坞站容器中运行的Open

  • 我需要在我的docker容器中同时使用java和python来运行一些代码。 我的目标 我必须运行一个运行Java文件的python程序。我使用的python库需要的路径。 我的问题: Python包装器以我需要的方式运行文件。

  • 我很难弄明白这一点。 所以我有一个基于Ubuntu映像的dockerfile。在我的dockerfile的末尾,我有: 什么都没发生..docker ps显示没有正在运行的容器 但如果我跑: 容器开始运行,我在shell中,docker ps显示这个容器正在运行。所有工作都按预期进行,但我的django项目不在那里,我的理解是运行/bin/bash会覆盖dockerfile中的CMD,这意味着dj

  • docker如何在Debian主机上运行,或者在容器中运行OpenSUSE?它使用不同的内核,具有不同的模块。另外,老版本的Debian使用了老版本的内核,那么如何在3.10+版本的内核上运行它呢?旧的内核只有旧的内置功能,旧的发行版如何管理新的功能?这里面有什么“诀窍”?