コンテンツに移動
Google Cloud

Windows コンテナを Compute Engine で動かす

2018年5月21日
Google Cloud Japan Team

コンテナ型仮想化は急速に進化しているテクノロジーの 1 つで、分散アプリケーションのデプロイと管理を容易にします。人々がコンテナを話題にするとき、大抵は Linux ベース コンテナのことを指していますが、それはもっともなことです。Linux カーネルのネイティブ機能(たとえば cgroups)でリソースの分離という考え方が導入され、それがひいてはコンテナの登場につながったからです。

コンテナ化が可能なのは長らく Linux プロセスだけでしたが、Microsoft が Windows Server 2016 と Windows 10 で Windows ベース コンテナをサポートしました。これにより、既存の Windows アプリケーションを Docker でコンテナ化し、独立したコンテナとして Windows で実行できるようになりました。

Microsoft は Windows Server コンテナと Hyper-V コンテナという 2 種類の Windows コンテナをサポートしています。Windows コンテナは microsoft/windowsservercore または microsoft/nanoserver という基本イメージをベースに構築できます。Windows コンテナの詳細は、Microsoft の Windows コンテナに関するドキュメントをご覧ください。

Windows コンテナを Google Cloud で使用

Google Cloud はコンテナに最適化された VM イメージを提供しています。この VM イメージは、Compute Engine でのコンテナの実行に使用できます。また、コンテナ用の Windows VM イメージも提供しています。この Windows VM イメージには Docker が付属し、基本イメージの microsoft/windowsservercore や microsoft/nanoserver がインストールされています。

Compute Engine で Windows コンテナを実行するには、まず Windows VM が必要です。Cloud Console で Compute Engine セクションに移動し、インスタンスを作成します。起動ディスクの OS イメージとして、必ず Windows Server version 1709 Datacenter Core for Containers(Beta)を選択します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image009.max-600x600.png

インスタンスを作成したら、Cloud Console か gcloud で新しい Windows パスワードを作成し、RDP で VM にログインします。VM にログインすると、必要最小限の OS と UI が動作していることがわかります。幸いなことに、Docker と基本イメージはインストール済みです。Windows コンテナの実行に必要なものはこれだけです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image2eg8w.max-700x700.max-700x700.png

最初の Windows コンテナのために、この例のように “Hello World” を出力する呼び出し可能な PowerShell スクリプトを作成しましょう。

microsoft/nanoserver:1709 イメージがすでにインストールされていますが、このイメージには PowerShell が含まれていません。代わりに、microsoft/nanoserver:1709 イメージをベースとする microsoft/powershell イメージを使用します。

まず、PowerShell イメージをプルして実行します。

読み込んでいます...

これで PowerShell コンテナに入ります。“Hello World” を出力する PowerShell スクリプトを作成し、コンテナから出ます。

読み込んでいます...

今度は、PowerShell スクリプトを含む新しいイメージを、変更されたコンテナを使って作成する必要があります。このコンテナの ID を取得し、docker commit コマンドを使って、その ID で新しいコンテナ イメージを作成します。

読み込んでいます...

以上で、コンテナ イメージを実行し、コンテナ内の指定したスクリプトを実行できるようになりました。

読み込んでいます...

ご覧のとおり、Google Cloud Platform(GCP)で Windows コンテナを実行できています!

以上の手順を試したい方のために、コードラボ(ハンズオン形式で体験できる解説付きのコーディング エクササイズ)が用意されています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image3rg2h.max-400x400.PNG
Video Thumbnail

試し終わったら、追加の料金がかからないように、必ず VM をシャットダウンするか削除してください。

GCP 上での Windows コンテナWindows の詳細についてはドキュメントをご覧ください。フィードバックやもっと知りたいことがありましたら、コメント欄を使ってお寄せください。


* この投稿は米国時間 4 月 2 日、Developer Advocate の Mete Atamel によって投稿されたもの(投稿はこちら)の抄訳です。

- By Mete Atamel, Developer Advocate

投稿先