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

我开始学习如何使用TensorFlow进行机器学习。 并且发现docker是非常方便部署TensorFlow到我的机器。 不过,我能find的例子并不适用于我的目标设定。 哪个是

在ubuntu16.04操作系统下,使用nvidia-docker将jupyter和tensorboard服务放在一起(可以是两个容器或两个服务的容器)。 主机操作系统可以看到从jupyter创build的文件。

  • Ubuntu 16.04
  • Dokcer
  • NVIDIA-泊坞窗
    • Jupyter
    • Tensorboard

Jupyter容器

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 

Tensorboard容器

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

我试图将日志文件夹挂载到两个容器,并让Tensorboard访问jupyter的结果。 但山上似乎确实有效。 当我使用笔记本文件夹在jupyter容器中创build新文件时,主机文件夹$(pwd)/ notebooks不出现任何内容。

我也遵循了Nvidia Docker,Jupyter Notebook和Tensorflow GPU的说明

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

只有Jupyter工作,tensorboard不能从6006港口到达。

我今天面对同样的问题。

简短的回答:我假设你使用Jupyter Notebook和tensorboard的同一个容器 。 所以,如您所写,您可以使用以下方式部署容器:

 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可以创build独立的卷,并且不会链接到特定的容器。 这可能是一个解决scheme。

  1. 创build两个卷来存储日志和笔记本。
  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