2016年1月20日水曜日

Windows10でWindowsコンテナを試す。



以下URL参照
https://msdn.microsoft.com/ja-jp/virtualization/windowscontainers/quick_start/container_setup

Windows2016からリリースされるWindowsコンテナですがWindows10Build10586以降であればコンテナ環境を試すことができます。
とはいえWindows10ではコンテナのコマンド(Get-Containerなど)が提供されていないためWindows10のHyper-V環境にWindowsコンテナホストを
構築してコンテナを起動する、という流れになります。

Windows10[Hyper-V]
 - Windows2016TP4[Windowsコンテナホスト]

ちなみに「Windowsコンテナ」と「Hyper-V」コンテナは違うそうです。
 Windowsコンテナ・・・コンテナを「サービス」として稼働
 Hyper-Vコンテナ・・・コンテナを「Hyper-V仮想ホスト」内で稼働

上記のためHyper-Vコンテナでは「ネストされた仮想」機能が必要となります。
普通に考えたら「仮想ホスト内の仮想ホスト内でコンテナを動かす」ことになりパフォーマンス低下が激しいので
リソース消費を抑えた「Nano Server」でHyper-Vコンテナを動かす、という思想のようです。
(VMwareのPhotonOSですかね?であればESXi環境でもHyper-Vコンテナ動かせますな・・・)


以下、自宅のWindows10でWindowsコンテナを体験します。

Windows10でHyper-Vを有効にします。
https://msdn.microsoft.com/virtualization/hyperv_on_windows/quick_start/walkthrough_install#UsingPowerShell
Hyper-V管理マネージャで「外部仮想スイッチ」を作成します。
以下コマンドで結果が表示されればOK

Get-VMSwitch | where {$_.SwitchType –eq “External”}

コマンドプロンプト(管理者)を実行して以下コマンドを入力します。

powershell.exe
start-process powershell -Verb runas

管理者用のWindowsPowerShellが開くのでスクリプト実行ポリシーを変更します。

Set-ExecutionPolicy RemoteSigned
y

以下セットアップスクリプトをダウンロード、実行します。

wget -uri https://aka.ms/tp4/New-ContainerHost -OutFile c:\New-ContainerHost.ps1
c:\New-ContainerHost.ps1 –VmName <containerhost> -WindowsImage ServerDatacenterCore -Hyperv

<containerhost>は作成する仮想マシン名を入力

作成する仮想マシンのパスワードとライセンス条項の同意画面が表示されるのでそれぞれ入力します。

インターネット経由でWindowsコンテナイメージがダウンロードされます。
※時間がかかる(5時間)かつ、32GBのディスクを消費します。

下記に仮想マシンを作成するようです。
C:\Users\Public\Documents\Hyper-V\Virtual hard disks

ここまで来て「VMwarePlayerでWindowsServer2016インストールしたほうが早くね?」と頭がよぎりましたが
頑張って続けます。

Windows10のHyper-VマネージャにWindows2016仮想マシンが作成されました。
仮想ホスト自体のメモリは686MB消費していました。
コンテナを起動すると737MBになりました。確かにメモリ消費は抑えられていますね。
Hyper-Vコンテナを起動すると1966MBになりました。Hyper-Vコンテナ、重いですね。

画面はコマンドプロンプトのみ。
パスワード入力してログインします。

やはり画面はコマンドプロンプトのみ。。。

下記URLの手順そのままでコンテナ内にIISを起動することができました。

https://msdn.microsoft.com/ja-jp/virtualization/windowscontainers/quick_start/manage_powershell

※コピー&ペーストしたほうが早いです

docker コマンドもあったのでdocker pull したらcentosもっていけるかと期待しましたが無理でした。
Windows専用コンテナですね。







0 件のコメント:

コメントを投稿