はじめに
October 2018 Update から、 Windows 10 Professional 以上で、 開発・テスト用に Windows コンテナが使えるようになっていた。 どうやって使えばいいのか調べたら Docker から使うのか。 独自のインタフェースを提供するより、既にデファクトスタンダードに乗っかる選択をしたのは賢明だな。
Docker のインストール
Docker Desktop for Windows は下記の URL でインストーラーを入手してインストール。
https://hub.docker.com/editions/community/docker-ce-desktop-windows
Docker のトレイメニューで [Switch to Windows containers...] をクリックして、Docker が使うコンテナの種類を Windows コンテナに切り替えられた。
コンテナイメージのダウンロード
早速、Windows Server のコンテナイメージをダウンロードしてみた。
> docker pull mcr.microsoft.com/windows/nanoserver:1809
ちゃんとダウンロードできたことを確認。
> docker images
プロセス分離モードでコンテナ起動
プロセス分離モードで実行するには、--isolation process
の指定が必要。
「Hello World!」をテキストファイルに出力してコンテナを終了するところまでやってみた。
> docker run -it --isolation process mcr.microsoft.com/windows/nanoserver:1809 cmd.exe > echo "Hello World!" > Hello.txt > exit
コンテナが停止されていることを確認。
> docker ps -a
ステータスが Exited になっている。
新しいコンテナイメージを作成
変更したコンテナから新しいコンテナイメージを作成してみた。
> docker commit <コンテナID> helloworld
コンテナイメージに helloworld が追加されていることを確認しておく。
> docker images
作成したコンテナイメージを使ってコンテナを起動
helloworld コンテナイメージを使って、コンテナを起動してみた。 もちろんプロセス分離モードで。 今回は、テキストファイルの中身を表示したら即コンテナを停止させている。
> docker run --rm --isolation process helloworld cmd.exe /s /c type Hello.txt
おわりに
--isolation process
を指定するだけで、Docker から Windows コンテナをプロセス分離モードで起動できるのは、
Docker 頑張ったなという印象。
いや、頑張ったのはMicrosoft か?
Docker で使うコンテナは Linux コンテナが多いと思うけど、 本業で開発しているアプリは Windows の資産がほとんどなので、 しばらくは Windows コンテナと仲良くすることになりそうだ。