Docker コンテナ上で起動した TensorBoard に外部からアクセスする方法

現象

Docker コンテナ上で TensorBoard の(よくある)起動コマンドをそのまま叩いても、コンテナ外からアクセスできません。

// Docker コンテナ上で TensorBoard を起動する  
(host) $ docker container run -p 6006:6006 -it hogehoge /bin/bash    // 適当なコンテナ起動コマンド  
 --- 略 ---  
(container) $ tensorboard --logdir=/path/to/logdir  
Serving TensorBoard on localhost; to expose to the network, use a proxy or pass --bind_all  
TensorBoard 2.0.0 at http://localhost:6006/ (Press CTRL+C to quit)  

// TensorBoard にアクセスしてみる(通常は Web ブラウザを使いますが、ここでは説明上 curl を使っています)  
(host) $ curl localhost:6006  
curl: (56) Recv failure: 接続が相手からリセットされました  

解決方法

TensorBoard 起動時のメッセージにもある通り、--bind_allオプションを付与して起動するだけです。

(contaier) $ tensorboard --logdir=/path/to/logdir --bind_all  
TensorBoard 2.0.0 at http://585cef5d6401:6006/ (Press CTRL+C to quit)  

(host) $ curl localhost:6006  
<!doctype html><!--  
@license  
Copyright 2016 The TensorFlow Authors. All Rights Reserved.  
--- 略 ---  

もしくは、--host=0.0.0.0 を付与する方法でもいけるようです。

(contaier) $ tensorboard --logdir=/path/to/logdir --host=0.0.0.0  
TensorBoard 2.0.0 at http://0.0.0.0:6006/ (Press CTRL+C to quit)