Windows Server 2016 TP5のTP4からの変更点の多くは、Windows Server 2016で初めて搭載されることになる新機能に集中している印象です。それは、「Windowsコンテナ」に関してです。
Windows Server 2016 Technical Preview(TP)5(Nano Serverを含む)を「Windowsコンテナ」のためのコンテナホストとしてセットアップするには、Windows PowerShellで次のコマンドラインを実行します(Windows Serverコンテナのみを利用する場合は「-HyperV」パラメータは省略)。
wget -uri https://aka.ms/tp5/Install-ContainerHost -OutFile .\Install-ContainerHost.ps1 .\Install-ContainerHost.ps1 -HyperV
「Install-ContainerHost.ps1」を使用したセットアップは、Windows Server 2016 TP4と変わりませんが、処理内容は変更されています。まず、既定はNAT(Network Address Translation:ネットワークアドレス変換)タイプのネットワークを準備しますが、「-Transparent」オプションを指定することで、コンテナホストと同じネットワークにコンテナを接続してDHCP(Dynamic Host Configuration Protocol)でIPアドレスを構成できるようになりました。
また、コンテナのネットワーク作成やDockerデーモンのインストールに関しても細かい変更があります。さらに、コンテナのベースイメージは、Windows Server 2016 TP5ベースのWindows Server Core(バージョン10.0.14300.1000)およびNano Server(バージョン10.0.14300.1010)のイメージに変更されています。
Windows Server 2016 TP5のリリース時はクイックスタートの方法として「Install-ContainerHost.ps1」を使用したセットアップが提供されていましたが、2016年5月末からはこれを使用せずにマニュアルでセットアップする方法に手順が変更されています。これは、手順の変更だけではなく、2016年5月末に提供が始まったDockerデーモンの新しいビルドの仕様変更に対応したもののようです。
Windows Server 2016 TP5リリース時のDockerデーモンのバージョンおよびビルド番号は「Docker version 1.12.0-dev, build 2b97201」、2016年5月末公開のものは「Docker version 1.12.0-dev, build 8e92415」です。
以前のビルドでは、Dockerデーモンをサービスとして登録するために「NSSM(Non-Sucking Service Manager)」というフリーのツールを利用して、「C:\ProgramData\docker\runDockerDaemon.cmd」を実行する方法が採用されていました。NSSMはNano Serverに対応していないため、Nano ServerではWindowsの「タスクスケジューラ」を利用して「C:\ProgramData\docker\runDockerDaemon.cmd」を実行するようになっていました。
2016年5月末に公開された新しいビルドでは、Windowsへのサービス登録機能がDockerデーモンのバイナリに組み込まれ、「docker --register-service」でインストールできるように変更されています。この機能はNano Serverでも動作します。
細かい変更点はありますが、コンテナホストのインストールとコンテナ操作に関しては、基本的にWindows Server 2016 TP4と変わりません。変わった点は、コンテナ作成時の「New-Container」コマンドレットの「-SwitchName」パラメータが、「-NetworkName」パラメータに変更されたこと、そして、コンテナ向けのネットワークスイッチの作成がHyper-Vと共通の「New-VMSwitch」コマンドレットから、コンテナ専用の「New-ContainerNetwork」コマンドレット(または「docker network create」コマンド)に変更されたことくらいでしょうか。
なお、「Install-ContainerHost.ps1」を使用したインストール手順は本稿執筆時点でも可能ですが、Dockerデーモンおよびクライアントの新しいビルドのバイナリを利用するには、新しい手順でセットアップする必要があります。
以下の筆者の個人ブログに、新しい手順の具体的なコマンドラインに加え、「Install-ContainerHost.ps1」でセットアップ済みのコンテナホストを新しいビルドのDockerデーモンおよびクライアントに更新する方法をまとめました(画面1)。
Copyright © ITmedia, Inc. All Rights Reserved.