DockerでWindowsコンテナを起動する為に必要な設定

Docker for Windows では、 Windows コンテナが起動できるようになっています。

開発者に朗報! Windows 10でWindows Serverコンテナが実行可能に (1/2):企業ユーザーに贈るWindows 10への乗り換え案内(42) - @IT

https://hub.docker.com/_/microsoft-windows

ただ、私の環境では公式のドキュメントに書いてある通りに docker run mcr.microsoft.com/windows:1903 を実行すると no matching manifest for unknown in the manifest list entries. と表示され起動できない。

Windows コンテナは Docker を Windows コンテナ用に設定する必要があるみたい。

常駐タスクアイコンの中から、 docker for windows を右クリックして Switch to windows containers を選択しておくこと。

あと、 エクスペリメンタル機能を有効にしておく必要がある。

同じように docker for windows のアイコンを右クリックして Settings から Daemon を選択して Experimental features のチェックを入れる。

いろんなサイトではこれで有効になるようだが、私の環境では無理だった。

私の場合は、エクスペリメンタル機能を有効にするために、%USERPROFILE% の下にある .docker/config.json の中に "experimental": "enabled" を追加した。

あと、Windows コンテナは ホストの Windows OS と同じ環境で動作するため ホストのOSをゲストのOSと同じにしておく必要があるようだ。

私の環境は WIndows 10 Pro 1803 だったため、ちゃんと起動できなかった。 Windows Update を行って Windows 10 Pro 1903 にしておく必要がある。

これらをすべて実行し、 docker for windows を再起動したのち、再度 docker run mcr.microsoft.com/windows:1903 を実行すると実行できる。

ただ、実行してもすぐに終了してしまうので、以下のようにインタラクティブモードにしたほうがいい。

docker run -it --name wincont01 --isolation=hyperv mcr.microsoft.com/windows:1903 cmd