Windows Server 2016でWindows Serverコンテナーを使い始める

Windows Server 2016からDocker APIに対応した「Windows Serverコンテナー」と、より強固なプロセス分離機能を備えた「Hyper-Vコンテナー」の2つのコンテナ技術を利用可能になりました。今回はこのうちWindows Serverコンテナーについて、使い始めるための手順を解説します。

本記事は、Microsoftのこちらのドキュメントをもとに記述しています。以前は一部コマンドのオプションが間違っていましたが、修正されているため、本記事執筆時点では参照先サイトの手順をそのまま実行可能です。

スポンサーリンク

1. Windows Serverコンテナー機能の有効化

事前にWindows Updateを行い、最新のHotfixを適用します。Windows Server 2016リリース直後(RTM)の状態ではコンテナーは正常に動かないためです。次に、サーバーマネージャーから「管理」>「役割と機能の追加」をクリックして機能の追加ウィザードを開始します。開始後、「コンテナー」項目にチェックをつけてインストールを行います。

install-container

インストールが終わったらOS再起動を行います。

2. Dockerのインストール

Windows Server用のDockerをインストールするためには管理者用Windows PowerShellを起動したうえで2つのステップを踏みます。1つ目はPowerShell GalleryからDockerパッケージを管理するためのプロバイダーモジュールをインストールします。

次に実際にDockerパッケージをインストールします。インストールコマンドを実行するとインストールするパッケージを信頼済みにするかどうか聞かれるので「A」と回答します。

実際に一連のコマンドを実行すると以下のような表示になります。

Install Docker on Windows PowerShell

インストール完了後、再度OS再起動を実施します。

3. Dockerコマンドでコンテナを起動してみる

OS再起動が完了したらPowerShellを起動して、Dockerのバージョンを表示し、インストールされていることを確認します。

次に、サンプルのイメージ空コンテナを起動します。今回は.NET CoreのキャラクターBOTを表示するだけのものになります。なお、初回起動時はDocker Hubからイメージをダウンロードするため、インターネットにつながっている必要があります。

4. Windows Serverコンテナー利用時の注意点

Windows ServerコンテナーはLinux上でのDockerコンテナと同じコマンドを使ってWindowsカーネルベースのコンテナを作ることができます。なおWindows Serverコンテナーを使う上での注意点が2つあります。

  1. ホストOSとOSカーネルを共有しているため、Linuxカーネルベースのコンテナを実行することはできません。
  2. たまに正常に実行できない場合がありますが、これはWindowsのサービスにある「Docker」と「Docker for Windows Service」のどちらかが起動していない場合に起きます。サービス一覧(services.msc)を開いて上記2つのサービスが実行中かどうか確認してみましょう。

以上がWindows Serverコンテナーを利用開始するまでの手順でした。