Docker Share
Vagrant Share素晴らしい.外部ネットワークのマシンから,ローカルに立てた仮想マシンへのアクセスを実現している.
TL;DR
ngrokを使えば,Vagrant Shareのようにローカルに立てたDockerコンテナを外部ネットワークからアクセス可能にすることができる.
以下をやってみた.
- Apacheコンテナへのアクセス
- Railsコンテナへのアクセス
準備
環境は,OSX上でboot2dockerを使って行う.またngrokをインストールして適切な場所に配置しておく.
事前にboot2dockerを停止した状態で,port forwardingをして置く.
1
| |
設定が終わったらしたら,boot2dockerを起動しておく.
1
| |
Apacheコンテナの公開
以下のようなDockerfileを準備する.
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
イメージをビルドする.
1
| |
コンテナを起動する.このとき,8080->80でport forwardingをする.
1
| |
次に,ngrokを8080ポートで起動する.
1
| |
すると,http://4c9084d8.ngrok.comのようなURIが発行される.あとはVagrant Shareと同様にこのURIを共有すれば,外部ネットワークからこのコンテナにアクセスできる.
以下のような流れでコンテナ内へのアクセスが実現される.
1 2 | |
Railsコンテナの公開
Railsアプリのコンテナも同様に外部ネットワークへ公開することができる.
Railsアプリを新規に作成し,rbdockを使ってRailsアプリ用のDockerfileを生成する.
1 2 | |
すると,このようなDockerfileが生成される.
イメージをビルドする.
1
| |
コンテナを起動する.8080->3000でport forwadingをする.
1
| |
同様にngrokを8080ポートで起動する.
1
| |
すると,http://36a98c94.ngrok.comのようなURIが発行される.あとはこのURIを共有するだけ.簡単だ.