しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Windows Server 2016 の Docker から Hyper-V Containers を利用する

前のエントリでは Windows Containers を使いましたが、Hyper-V Containers も Docker から使えるらしいので実際に試しました。Docker と Windows Containers を試した環境をそのまま使ってます。

検索してみると Cmdlet を使って Hyper-V Containers を管理する方法ばかり出てきますが、ちゃんと Docker を使った管理にも対応していました。

Windows Containers と Hyper-V Containers には互換性があるみたいなので、docker pull で取ってきたイメージを起動する時に引数を追加するだけで、Hyper-V Containers で起動できました。

docker run -d -p 80:80 ––isolation=hyperv microsoft/iis

具体的には --isolation=hyperv を付けるだけです。これだけで切り替え可能です。

実際に前回 docker pull してきた IIS イメージを Hyper-V Containers を使って実行してみました。Windows Containers を使う場合より数秒は起動が遅い気がしますが、仮想マシンを立ち上げるより十分高速です。

f:id:shiba-yan:20161016205614p:plain

タスクマネージャーを見ると Hyper-V 絡みのプロセスが立ち上がっています。ユーザー名には GUID が振られていますが、docker コマンドから確認することは出来ないようでした。

IIS が起動しているのにワーカープロセスが居ないので、Hyper-V で動いていることが分かります。

f:id:shiba-yan:20161016205854p:plain

ブラウザでアクセスすると IIS のデフォルトページが表示されているので、IIS がちゃんと動作していることも確認できました。Hyper-V Containers を使うのはとても簡単ですね。

f:id:shiba-yan:20161016205919p:plain

あまりにも簡単に動作してしまったので、ついでに最近公開された SQL Server 2016 Express の Docker イメージを試しました。とはいえ docker pull して起動するだけです。

パスワードを渡すだけで SQL Server 2016 Express の環境が数秒で整うのはかなり便利です。

f:id:shiba-yan:20161016212508p:plain

当然ながら SSMS で接続して自由に操作できます。Hyper-V Containers は Windows 10 でも使えるらしいので、Hyper-V に対応したマシンなら環境構築が楽になりそうですね。

手持ちの MacBook Pro が Hyper-V に対応していないので、試せていないのが残念ですが。