Windows 10 での Windows コンテナーと Linux コンテナーの共存方法

  • 8
    いいね
  • 0
    コメント

Windows 10 での Windows コンテナーの有効化

以前の投稿 "Visual Studio 2017 による ASP.NET Core アプリの Docker コンテナーの利用" では、Windows 10 環境において、Docker for Windows をインストールして、Linux コンテナーを有効化しました。

一方、Windows コンテナーは、Windows 10 Anniversary Update から、Windows の機能として組み込まれており、ASP.NET 等の Windows に依存したアプリケーションを開発している場合は、この Windows コンテナーの方が利用頻度が高いかもしれません。

現状、Windows コンテナーでは、Linux イメージを動作させることはできず、また、Linux コンテナーでは、Windows イメージを動作させることはできません。

今回は、Docker for Windows をインストールした環境に対して、さらに Windows コンテナーをインストールして、共存化を行おうと思います。

[Windows の機能の有効化または無効化] - [コンテナー] を選択し、[OK] を選択し、Windows コンテナーをインストールします。
image.png

次に、タスク バーの通知領域から、Docker アイコンの右クリック メニュー [Switch to Windows containers...] を選択します。
image.png

docker version の出力を確認すると、Server の OS/Arch が windows/amd64 となっており、Windows コンテナーに切り替わっていることが分かります。
image.png

Linux コンテナーに戻す場合は、タスク バーの通知領域から、Docker アイコンの右クリック メニュー [Switch to Linux containers...] を選択します。
image.png

docker version の出力を確認すると、Server の OS/Arch が linux/amd64 となっており、Linux コンテナーに切り替わっていることが分かります。
image.png

Visual Studio 2017 による Windows コンテナーの開発について

Visual Studio 2017 における Windows コンテナーの開発サポートですが、ASP.NET アプリケーションにおいても ASP.NET Core MVC アプリケーションと同様に、Docker サポートを有効でき、Windows コンテナーのデバッグ実行も可能です。
(この時、Windows コンテナーに切り替えていないと、ビルド時にエラーとなります。)
しかしながら、2017/05/05 現在では、発行のサポートがされていなようです。

Dockerfile は生成されるので、以下を参考に、docker コマンドによる発行が必要です。