vmware
docker
vSphere
WindowsServer2016

VMware vSphare5.5.0でWindowsコンテナを動かすまでの手順とできないこと

More than 1 year has passed since last update.

Windows Server 2016をVMware vSphare5.5.0上の仮想マシンに入れてWindowsコンテナを動かそうとして躓きました。結果として仮想化のネストの許可が必要ということとHyper-V ContainersはvSphare5.5では動かずVMware vSphare6.0以上が必要であることが分かりましたのでそのまとめです。

必要要件

要件はここ(Deploy Windows Container)に書いてあります。

  • 4GB以上のメモリ
  • Windows Server 2016, or Windows 10 on the host system, and Windows Server (Full, Core) or Nano Server
  • Intel VT-x が有効なプロセッサ
  • CPUが2コア以上

となってますが、メモリ、コア数は多少足りなくてもとりあえずは動きました。一方Intel VT-xはHyper-V Containersを使わない場合でも必須でした。

Windowsコンテナを動かすまで

ということで、Intel VT-xの有効化、つまり仮想化のネストの許可を行っていきます。今回、仮想マシンの作成はvSphare web clientを使用します。(普通のclientから設定できなかった)

まずは空の仮想マシンを作成してください。

次に仮想マシンの仮想マシンハードウェアバージョンをアップグレードします。手順はVMware Docsのここです。これを行うとvSphare5.5の場合バージョンは10になります。

最後に作成した仮想マシンの仮想化のネストの有効化を行います。手順はVMware Docsのここになります。

以上で終了です。後は普通にWindows Server 2016をインストールして、クイックスタートに従ってDockerをインストールすれば使えます。

できないこと

vSphare5.5ではHyper-V Containersが使えません。これは仮想マシンのWindows Server 2016の中でHyper-Vの起動ができないからです。
実際にやってみると「役割と機能の追加」からHyper-Vのインストールは成功します。しかしイベントを確認すると

  • Hypervisor launch failed; Processor does not support the minimum features required to run the hypervisor

というようなエラーが発生して起動できていないことが分かります。

調べてみるとこちらのような話が見つかり、Windows2016のHyper-vを使用するためには仮想マシンハードウェアバージョンが11以上が必要でvSphare5.5では10までしか上がらないので使用できないということが分かります。