xhyveへポート転送する
今回もboot2docker-xhyveを使う。
VirtualBoxではVBoxMangeコマンドや、GUIでポート転送できるので、dockerコンテナを外部から利用できます。xhyveではこの辺りを自前でやり来る必要があるようです。
socatというコマンドを
brew install socat
とHomebrewで入れて
socat TCP4-LISTEN:6080,fork TCP4:192.168.64.7:6080
とすることで
git clone https://github.com/kjunichi/docker-mosaic.git
cd docker-mosaic
docker build -t kjunichi/mosaic .
docker run -p 6080:6080 -d kjunichi/mosaic /startup.sh
で動かした6080番ポートで動いているWebサーバーにiPhoneからOSXのIPアドレスの6080番ポートをxhyve側の6080番ポートに転送してくれる。
http://xhyveを動かしているマシンのIPアドレス:6080
とアクセスすることで、無事NCSA Mosaicが表示された。
参考資料
portフォワードというかTCPリレーというか(socat) | Linux | マイノリティでいこう
docker - ChromebookでNCSA Mosaicを動かすのに必要だったこと - Qiita
まとめ
はじめにシンプルなポート転送なのでncコマンドを試してみましたが、httpだと頻繁にコネクションをクローズされるので、このタイミングでコマンドが終了してしまい、ちょっと探したら、今回のsocatが見つかった。
関連記事