如何与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。
- 创build两个卷来存储日志和笔记本。
- 使用这些卷部署这两个图像。
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