Hyper を試してみた - blog.holidayworking.org では 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!
no running container in `docker ps` after hyper started the pod · Issue #11 · hyperhq/hyper · GitHub
ポートフォワーディングについて対応中で近々リリースされる模様なので、対応したバージョンがリリースされたら、再度試してみることにする。