Windows環境にDocker Desktopをインストールすれば、WindowsコンテナーがローカルPCで利用できるようになります。
しかし、Windowsを使うにあたってはライセンスという概念があるはずです。
WindowsコンテナイメージはDocker hubから自由にダウンロードできますが、ライセンスってどういう扱いなのか分からなかったので調べてみました。
DockerにおけるWindowsコンテナーのライセンスはどういう扱いなのか?
Windowsコンテナーの公式Docを探してみても、それらしき記載を見つけられませんでした。
しかしFAQのページにライセンス供与について言及されていましたので、抜粋します。
ユーザーが実行できるコンテナーの数は、ホスト OS のエディションと、コンテナーを実行されている分離モードによって異なります。また、これらのコンテナーが開発/テスト目的または運用環境のどちらで実行されているかによっても異なります。
引用元:https://docs.microsoft.com/ja-jp/virtualization/windowscontainers/about/faq
うーん分かりにくい…。
同じくリンクが張られているEULA(利用許諾)を見てみます。
The Container Image may only be used with a validly licensed copy of:
コンテナイメージは、有効にライセンスされた「次のコピーでのみ使用できます」とあります。
- Windows Server Standard
- Windows Server Datacenter software (collectively “Server Host Software”)
- Microsoft Windows Operating System (version 10) software (“Client Host Software”)
- Windows 10 IoT Enterprise and Windows 10 IoT Core (collectively “IoT Host Software”)
つまり、Windows10を使っているなら10のコンテナイメージを、WindowsServerを使っているならServerのコンテナイメージを使用できるということですね。
そしてこうも書かれています。
You may not use the Container Image if you do not have a corresponding version and edition of the Host License.
ホストライセンス(今使ってるOS)のバージョンとエディションが合致したコンテナイメージしか使っちゃダメですよ。と書かれています。
つまり、ほんとにホストOSのコピーとしてしか使用しちゃダメよということですね。
いや、これは厳しい。(でもまぁ当然か…)
ということは、Windows10にDocker Desktopをインストールして、ServerCoreやNanoServerのコンテナイメージを使うことはライセンス違反ってことですね。
でもこれじゃあライセンス買わないとServerCoreやNanoServerで開発やテストできないじゃん!と思う方も多いかと思います。
さらにこういった一文が書かれていました。
When running a Container Image on Client Host Software you may run any number of the Container Image instantiated as Windows containers for test or development purposes only.
テストまたは開発目的でのみ、Windowsコンテナーとしてインスタンス化されたコンテナーイメージをいくつでも実行できます。と書かれています。
ということは、本番環境でライセンスの無いOSのコンテナーを使うのはNGだけど、開発やテスト目的なら使ってもOKということですね。
まとめると、
- 基本はホストOSのコピーとしてのみ使用できる
- 開発や検証目的であれば、コンテナイメージを無制限に利用できる
ですね。
スッキリしました。