LIVA で Windows10 April 2018 Update (Version 1803) が動くようになったので、 Docker for Windows をインストールしてみました。
Docker for Windows を動かすには、 Hyper-V が使える必要があります。(このため、64bit Windows 10 Pro 以上でなければなりません。)
LIVA では、Fall Creators Update(1709) では Hyper-V が使えなかったので試せませんでしたが、April 2018 Update (1803) では Hyper-V が再び使えるようになりましたので、Docker for Windows を試してみました 。
Docker for Windows から Community Edition (CE) をダウンロードします。 特に Edge である必要はないので、素直に stable をダウンロードします。
ダウンロードしたインストーラを実行してインストールを行います。特に難しいことはありませんでした。 最後に「Use Windows containers insted of Linux containers」にチェックを入れました。
docker version の出力は以下の通りです。
client は Linux だと思っていましたが、Windows でした。(先ほどチェックを入れたからですが。)
C:¥>docker version Client: Version: 18.03.1-ce API version: 1.37 Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:12:48 2018 OS/Arch: windows/amd64 Experimental: false Orchestrator: swarm Server: Engine: Version: 18.03.1-ce API version: 1.37 (minimum version 1.24) Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:21:42 2018 OS/Arch: windows/amd64 Experimental: false
docker info の出力は以下の通りです。
C:>docker info Containers: 1 Running: 0 Paused: 0 Stopped: 1 Images: 1 Server Version: 18.03.1-ce Storage Driver: windowsfilter Windows: Logging Driver: json-file Plugins: Volume: local Network: ics l2bridge l2tunnel nat null overlay transparent Log: awslogs etwlogs fluentd gelf json-file logentries splunk syslog Swarm: inactive Default Isolation: hyperv Kernel Version: 10.0 17134 (17134.1.amd64fre.rs4_release.180410-1804) Operating System: Windows 10 Pro OSType: windows Architecture: x86_64 CPUs: 2 Total Memory: 1.891GiB Name: liva ID: XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX Docker Root Dir: C:\ProgramData\Docker Debug Mode (client): false Debug Mode (server): true File Descriptors: -1 Goroutines: 21 System Time: 2018-05-20T05:56:57.7922187+09:00 EventsListeners: 0 Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false
次に Windows コンテナのテストを行いました。 きちんと動きました。
C:¥>docker run microsoft/dotnet-samples:dotnetapp-nanoserver Dotnet-bot: Welcome to using .NET Core! __________________ \ \ .... ....' .... .......... .............'..'.. ................'..'..... .......'..........'..'..'.... ........'..........'..'..'..... .'....'..'..........'..'.......'. .'..................'... ...... . ......'......... ..... . ...... .. . .. ...... .... . ....... ...... ....... ............ ................ ...................... ........................'................ ......................'..'...... ....... .........................'..'..... ....... ........ ..'.............'..'.... .......... ..'..'... ...............'....... .......... ...'...... ...... .......... ...... ....... ........... ....... ........ ...... ....... '...'.'. '.'.'.' .... ....... .....'.. ..'..... .. .......... ..'........ ............ .............. ............. '.............. ...........'.. .'.'............ ............... .'.'............. .............'.. ..'..'........... ............... .'.............. ......... .............. ..... **Environment** Platform: .NET Core 2.0 OS: Microsoft Windows 10.0.14393
なお、Hyper-V には MobyLinuxVM という名前で Docker 用の仮想マシンが登録されていました。
次に Linux コンテナを試そうと思い、 Linux コンテナに切り替えようとしましたが、メモリ不足で切り替えることができませんでした。LIVA は 2GB しかメモリを積んでいないので、LIVA で Docker for Windows の Windows/Linux コンテナの切り替えは厳しいようです。LIVA X/X2 等の 4GBモデルならおそらく Windows/Linux コンテナ切り替えも可能でしょう。
なお、切り替えをあきらめて、デフォルトを Linux コンテナで使うことができるのかどうか 試してみました。
切り替えできないので、一度アンインストールして、再度インストールします。最後の「Use Windows containers insted of Linux containers」にはチェックは入れません。
インストールを進めると RAM が足りないのでエラーになってしまいました。どうやら 2GB では Linux コンテナは使えないようです。残念。
参考記事 :