Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
46
Help us understand the problem. What is going on with this article?
@anikundesu

Windows10 Pro上でHyper-Vコンテナーを使い始める手順

More than 1 year has passed since last update.

この記事は、「クラウド時代のシステム管理」の記事を転記したものです。
以前の記事でDocker for Windowsを使ってWindows10上でLinux Kernelベースのコンテナを実行する手順を紹介しました。今回はWindows10のHyper-Vコンテナーの機能を使って、Windows Kernelベースのコンテナを実行する手順を紹介します。本記事はMSDNサイトにある「Windows 10のWindowsコンテナー」という記事を参考にして、Windows 10 Pro Insider Previewを使って検証しました。

1. Windows 10 Pro上で利用できるコンテナー

Windows Server 2016ではWindows ServerコンテナーとHyper-Vコンテナーの2種類のコンテナ機能が利用可能です。この二つのコンテナの違いは以下の通りです。

  • Windows Serverコンテナーでは各コンテナはホストの1プロセスとして動き、コンテナのホストとその上で動くすべてのコンテナでWindows Kernelを共有している。
  • Hyper-Vコンテナーでは各コンテナは独立した仮想マシン上(つまりvmwp.exeプロセスとして)で実行され、Kernelはコンテナ間で共有されない。

コンテナの操作にはDockerエンジン、Dockerクライアントを利用します。そのため、コンテナの操作感はLinux Kernelベースのコンテナを扱うときと全く変わりません。

2. Hyper-Vコンテナー環境のセットアップ

以下、Windows 10 Pro上で実際にHyper-Vコンテナー環境をセットアップする手順を紹介します。

2-1. Hyper-Vおよびコンテナー機能の有効化

コントロールパネルの「プログラム」>「プログラムと機能」画面にて「Windowsの機能の有効化または無効化」をクリックしますすると、次のようなWindowsの機能の有効化ウィンドウが表示されますので、「コンテナー」と「Hyper-V」のチェックボックスをつけます。サブツリーにある項目もすべてチェックをつけます。

Enable Hyper-V Container Function

次へ進むと昨日のインストールが開始され、その後次のようにOS再起動を促す画面が表示されます。ここでOS再起動を実施します。

Enable Hyper-V Container Function 2

2-2. Docker EngineおよびDocker Clientのインストール

コンテナーを操作するためにDockerをインストールします。Windows用のDockerバイナリは下記のサイトにあります。

https://master.dockerproject.org/

上記サイトにあるwindows/amd64/docker-(バージョン)-dev.zipをダウンロードします。

docker-download

ダウンロードしたZIPファイルを展開したら、中にある「docker」フォルダをC:\Program Files</code>にコピーします。

Docker ZIP Extract

コピーしたら以下の手順でC:\Program Files\dockerをPATH環境変数に追加します。

1. システムの詳細設定画面を開く

コントロールパネルの「システムとセキュリティ」>「システム」画面で「システムの詳細設定」をクリックします。

Windows 10 System Configuration

2. 環境変数の設定

以下の図のように「詳細設定」>「システムの環境変数」内の「Path」を選択して「編集」をクリックします。

Windows 10 Environment Variables

Choose Path

Edit Path Environment

3. Docker用パスの追加

Pathの編集画面で「新規」ボタンをクリックします。フォーカスされた入力部分にC:\Program Files\dockerを入力した後、「OK」ボタンをクリックします。

Add Docker Path

2-3. Dockerのサービス化

DockerデーモンをWiondowsサービスとして登録するために以下のコマンドを管理者権限のコマンドプロンプトにて実行します。

C:\WINDOWS\system32> dockerd --register-service
C:\WINDOWS\system32> sc start docker

3. Hyper-Vコンテナーの動作確認

ここまでの手順でコマンドプロンプトからdockerコマンドでHyper-Vコンテナーを操作できるようになりました。コンテナが動くことを確認します。

3-1. Windows nano serverのコンテナイメージをダウンロード

以下のコマンドを利用してDocker HubからWindows Nano Serverのイメージをダウンロードします。

C:\> docker pull microsoft/nanoserver

ダウンロードしたら、イメージがダウンロードできていることを確認します。

C:\WINDOWS\system32>docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
microsoft/nanoserver   latest              787d9f9f8804        5 weeks ago         918 MB

3-2. Dockerによるコンテナの実行

ダウンロードしたイメージをもとにインタラクティブにコマンドプロンプトを実行するコンテナを起動します。コンテナに入ったことをホスト名などで確認します。

C:\> docker run -it microsoft/nanoserver cmd

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\>hostname
04700462dbc7

上記の結果でホスト名が元の端末と違うことと、Versionの部分がホストと違うことを確認します。

ここで表示されたホスト名はコンテナIDになります。exitコマンドでコンテナ上のコマンドプロンプトを終了させた後に確認できます。

C:\> docker ps -a
CONTAINER ID        IMAGE                  COMMAND             CREATED              STATUS                      PORTS               NAMES
04700462dbc7        microsoft/nanoserver   "cmd"               31 seconds ago       Exited (0) 19 seconds ago                       modest_goldwasser

以上で、最初のコンテナの実行まで確認できました。

3-3. Hyper-Vコンテナープロセスのホストでの見え方

Hyper-Vコンテナーでは、各コンテナはHyper-V上の仮想マシンとして動くため、コンテナのプロセスは「vmwp.exe」として見えます。このことはコンテナ利用中にホストのタスクマネージャで見ることもできます。

ただし、Hyper-Vを使っているとはいえ、通常の仮想マシンのようにHyper-Vマネージャから見ることはできません。あくまでHyper-Vのハードウェア仮想化機能だけを利用しており、仮想マシンをdockerコマンドで毎回生成しているわけではありません。

46
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
anikundesu
2008年からサーバー・ストレージ・Hypervisor(VMware ESXi, Hyper-V)まわりを中心にIaaSに関連することをやっていました。2020年からはプリセールスSEをしています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
46
Help us understand the problem. What is going on with this article?