如何在 Docker 容器中使用 TensorBoard(在 Windows 上)

How to use TensorBoard in a Docker container (on Windows)

我已经通过 docker 工具箱在 windows 上安装了 tensorflow。一切顺利,除了我不能使用 tensorboard。命令行显示'Starting Tensorboard 29 on port 6006. You can navigate to http://localhost:6006/'。但是,当我在我的网络浏览器上打开这个地址时,它就是无法连接到它。有谁知道如何解决这个问题?

如果您 运行 在 Docker 容器中安装 TensorBoard,并尝试在 Windows 中使用 Web 浏览器查看它,则需要设置端口转发从容器到您的 Windows 机器。有关 TensorBoard 端口转发的更详细讨论,请参阅 ,但您应该可以使用以下命令取得进展:

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

但是,直接在 Windows 上安装 TensorFlow 可能更容易,运行 TensorBoard 在那里。如果你为Windows安装Python 3.5,你可以通过运行ning安装TensorFlow和TensorBoard:

pip install tensorflow

然后您可以直接从命令提示符 运行 TensorBoard,您无需担心端口转发。有关详细信息,请参阅 Windows installation instructions

也许您应该将您的卷映射到包含日志的文件夹,然后使用 bash 输入:

docker run -v //c/pathto/tf_logs:/tf_logs  
-p 0.0.0.0:6006:6006 -p 8888:8888 -it b.gcr.io/tensorflow/tensorflow bash
cd ..
tensorboard --logdir tf_logs/

点击浏览器中的地图

http://192.168.99.100:6006

在 Windows 10 + WSL2 + Docker 上使用官方 tensorflow/tensorflow:latest-gpu-py3-jupyter 图像,我不得不告诉 TB 绑定到通配符地址。也就是说,在Jupyter笔记本中,我调用了:

%tensorboard --logdir logs/ --host 0.0.0.0

在此之后,我能够在我的笔记本中看到嵌入式仪表板。

我想在这里更新答案,因为我只是 运行 在 Ubuntu 20.04 和 latest-gpu tensorflow docker 图像(03e706e09b04).

对我有用的是以下 docker 运行: docker run -p 8888:8888 -p 6006:6006 -it --rm -v <path_to_summaries>:/opt/summaries tensorflow/tensorflow tensorboard

然后从容器内部: tensorboard --logdir /opt/summaries/ --bind_all

然后可以像预期的那样在 localhost:6006 访问服务器。 我猜这里的主要区别是,将 --bind_all 标志添加到将服务器暴露给外部网络的 tensorboard 调用,从而允许主机访问。