creating-your-first-windows-container-with-docker

Docker for Windows を使った Windows コンテナの作成

Docker for Windows を使った Windows コンテナの作成

Docker for Windows は、Docker が提供する、クライアント・ベースのオペレーティングシステム(Windows 10)上で Docker コンテナを設定するための製品です。

最近はコンテナが大きな注目を集めていますが、コンテナと言えば Docker が他を引き離しています。Microsoft は、コンテナの分野から取り残されないよう、過去数年の間に Docker とのコラボレーションに力を注ぎ、Windows のエコシステムを Linux と同等のレベルまで引き上げました。Docker と Microsoft のパートナーシップによって生まれた製品の一つに Docker for Windows があります。

Docker for Windows は、Docker for Windows Server と似てはいるものの、別のものです。このブログで取り上げる Docker for Windows は、Windows 10 Professional または Enterprise 64-bit のみで動作します。もし、従来の Windows システムを使用している場合は、Docker Toolbox が使えます。

Docker for Windows には、Community エディションと Enterprise エディションの2種類があります。ここでは特に手の込んだことは行いませんし、無料のもので十分なので、Community エディションを使用します。

Windows 10マシンに、Docker for Windows Community Edition をダウンロードします。ダウンロードが完了したら、インストーラを実行します。完了すると、Windows からログアウトするように求めらるので、ログアウトしてもう一度ログインしなおしてください。

コンピュータの再起動時に、インストールされた Docker for Windows が自動的に起動し、Hyper-V とコンテナの機能をインストールするよう求められます。指示に従ってインストールし、再起動します。

hyper v.png

[Ok] をクリックします。何も起こらなくても心配いりません。Docker for Windows は、Hyper-V とコンテナの機能をバックグラウンドでインストールしています。1分ほどかかりますが、コンピュータが再起動されます。コンピュータが再起動すると、Docker はシステムトレイから起動しようとします。

Parallels、MacOS 上の VMWare Fusion、IaaS クラウドインスタンスのような、既に仮想化された環境で Windows 10 を実行している場合、MobyLinuxVM 仮想マシンをスタートできないというエラーメッセージが表示される可能性があります。ここでは、Windows コンテナを作成したいので、Docker for Windows で Windows コンテナへの切り替えを指定します。

switch to windows containers.png

Windows コンテナを使用するように切り替えると、Docker は問題なく起動するはずです。次のステップは、使用するイメージをプルダウンすることです。Windows Server Core コンテナをセットアップしたいと思います。cmd または PowerShell で docker search を行い、公式の Docker レジストリを検索します。これでプルダウンするイメージの名前が取得できます。

PS> docker search *windowsservercore*
NAME                                         DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
microsoft/windowsservercore                  Windows Server Core base OS image for Window…   340

イメージの名前が分かれば、docker pull を使ってイメージをコンピュータにプルダウンすることができます。

PS> docker pull microsoft/windowsservercore
Using default tag: latest
latest: Pulling from microsoft/windowsservercore
3889bb8d808b: Downloading [>                                                  ]  63.29MB/4.07GB
cfb27c9ba25f: Downloading [==>                                                ]  62.29MB/1.308GB

Windows Server Core イメージがダウンロードされ、解凍されます。イメージがダウンロードされたら、そこからコンテナを実行できます。これを行うには、docker run コマンドを使用します。docker run コマンドは、イメージ上にコンテナを作成し、特定のコマンドを実行します。この例では、新しい Windows Server Core イメージ上で PowerShell を実行することを想定しています。そのためには、イメージの名前と PowerShell の実行可能ファイルを指定します。

PS> docker run microsoft/windowsservercore powershell
Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS C:\>
PS>

ここでは、あまり何かしているようには見えません。PowerShell のセッションが提示されると思ったら、PowerShell をコンテナに入れて終了してしまいました。その理由は、デフォルトでは、Docker の実行はインタラクティブではないため、コマンドが何であっても実行されて終わるためです。コンテナで PowerShell を使用できるようにするには、-it 引数を使用する必要があります。こうすることで PowerShell がオープンして稼働状態が維持されるので、行いたいことをすることができます。

 

関連ブログ


Comments
Comments are disabled in preview mode.
Thanks for subscribing! Loading animation