Hyper で Nginx を実行してみる
以前のエントリー では run
コマンドで VM インスタンスを作成・起動してみた。
Pod でも VM インスタンスの作成・起動ができるようなので、今回は Pod で VM インスタンスを作成して Nginx を実行してみた。
Podfile の作成 #
下記のような内容で定義してみた。
{
"name": "nginx",
"containers" : [{
"image": "nginx:latest",
"ports": [{
"containerPort": 80,
"hostPort": 8080
}]
}],
"resource": {
"vcpu": 1,
"memory": 128
}
}
Podfile の書き方については Podfile | About Hyper で説明されている。
今回は Docker イメージとして nginx を選択して、ホスト 8080 ポートを VM インスタンスの 80 ポートへフォワーディングさせるようにした。また、仮想 CPU を 1 コア、メモリを 128MB に設定した。
VM のインスタンスの作成 #
上記の Podfile を nginx.pod
として保存した場合に、下記のように実行すると VM インスタンスが作成される。
$ sudo hyper create nginx.pod
Pod ID is pod-cgZKrBZKUl
正常に作成されると Pod ID が表示されるようだ。
また、list
コマンドでも確認できる。
$ sudo hyper list
POD ID POD Name VM name Status
pod-cgZKrBZKUl f1nq5fhp0a pending
VM インスタンスの起動 #
Pod ID を start
コマンドの引数として渡すと、VM インスタンスが起動される。
$ sudo hyper start pod-cgZKrBZKUl
Successful to start the Pod(pod-cgZKrBZKUl)
list
コマンドで確認すると、ステータスが running
になっていることが分かる。
$ sudo hyper list
POD ID POD Name VM name Status
pod-cgZKrBZKUl f1nq5fhp0a vm-YupnKWgkcB running
動作確認 #
これで Nginx が起動しているので、Hyper を実行している環境の 8080 ポートにアクセスしてみたところ…。
「Gateway Timeout: can’t connect to remote host」とエラーが表示された…。
いろいろ調べたところ、現時点のパージョンではポートフォワーディングに対応していないためであることが分かった。
@henrysher the port-map is on the way, will come soon. Thanks!
ポートフォワーディングについて対応中で近々リリースされる模様なので、対応したバージョンがリリースされたら、再度試してみることにする。