LoginSignup
6
8

More than 5 years have passed since last update.

Hyper-V 上の Windows 10 VM で Docker(Windows コンテナ)を使おう

Posted at

はじめに

Windows 10 で Docker(というか Windows コンテナ)を使うためには Hyper-V を有効にする必要があります。ということで、Hype-V 上の VM で Hyper-V を有効にして(Nested Virtualization)、VM 上で Docker を動かしてみます。ホストも VM も、Windows 10 Pro か Enterprise の Anniversary Update 以降が必要です。(ホストは Windows Server 2016 でも OK)

Nested Virtualization 有効化

Hyper-V 上の VM に Windows 10 をインストールしたあと、VM を停止した状態で、Hyper-V ホストで以下の PowerShell コマンドを実行して Nested Virtualization を有効化します。

> Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
> (Get-VMProcessor -VMName <VMName>).ExposeVirtualizationExtensions # 有効化の確認
True

以降の作業はすべて VM 側で実施します。

Hyper-V とコンテナの有効化

Nested Virtualization を有効化したら VM 上で PowerShell を管理者として起動して以下のコマンドを実行します。(要再起動)

> Enable-WindowsOptionalFeature -Online -FeatureName containers -All
> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

有効化の確認。

> (Get-WindowsOptionalFeature -Online -FeatureName containers).State
Enabled
> (Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V).State
Enabled

Docker for Windows のインストール

Docker for Windows をダウンロードしてインストールします。

> Invoke-WebRequest -Uri https://download.docker.com/win/stable/InstallDocker.msi -OutFile ~\Downloads\InstallDocker.msi
> cd ~\Downloads\
> .\InstallDocker.msi /passive

docker コマンドを使ってバージョン確認します。環境変数 Path の再読み込みのため、PowerShell を再起動してから実行します。

> docker --version
Docker version 17.03.1-ce, build c6d412e

デスクトップの Docker for Windows をダブルクリックして Docker を起動しましょう。(スタートアップに自動登録されるため以降は OS 起動時に自動起動されます)

Hello World(Linux コンテナ)

動作確認のために Hello World を実行します。とりあえず Linux コンテナから。

> docker run hello-world

Hello World(Windows コンテナ)

Linux コンテナと Windows コンテナは同時に起動できず、切り替える必要があります。タスクバーの Docker アイコンを右クリックして Switch to Windows containers... を選択して Windows コンテナに切り替えます。

切り替えたら Hello World を実行しましょう。(400MBぐらいダウンロードします)

> docker run hello-world:nanoserver

蛇足

Microsoft 的には -er で終わる単語の日本語訳は長音になる決まりなので正しくはコンテナじゃなくて「コンテナー」なんですが、日本語としては微妙...。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8