Docker for Windows 1.13.0 が出たので Linux コンテナと Windows コンテナの切り替え機能を試してみる
開発部の本橋です。
Docker 1.13.0 の安定版がリリースされました。それに伴って Docker for Windows 1.13.0 の安定版もリリースされています。
従来 Linux コンテナと Windows コンテナの共存は「出来なくはないがとても面倒」な状況でしたが、Docker for Windows 1.13.0 では簡単に共存、そして切り替えが出来るようになりました。ということで早速使ってみました。
コンテナの切り替え
タスクトレイの Docker アイコン右クリックすると「Switch to Windows Containers…」 または 「Switch to Linux Containers…」 というメニューが出て来るのでクリックします。
数秒時間がかかりますが、「Docker is switching…」のアイコンが消えれば完了です。
どっちのコンテナを使っているか?
docker version
の出力の Server の OS/Arch でわかります。
Linux コンテナの場合は「linux/amd64」となっています。
> docker version Client: Version: 1.13.0 API version: 1.25 Go version: go1.7.3 Git commit: 49bf474 Built: Wed Jan 18 16:20:26 2017 OS/Arch: windows/amd64 Server: Version: 1.13.0 API version: 1.25 (minimum version 1.12) Go version: go1.7.3 Git commit: 49bf474 Built: Wed Jan 18 16:20:26 2017 OS/Arch: linux/amd64 Experimental: true
Windows コンテナの場合は「windows/amd64」となっています。
>docker version Client: Version: 1.13.0 API version: 1.25 Go version: go1.7.3 Git commit: 49bf474 Built: Wed Jan 18 16:20:26 2017 OS/Arch: windows/amd64 Server: Version: 1.13.0 API version: 1.25 (minimum version 1.24) Go version: go1.7.3 Git commit: 49bf474 Built: Wed Jan 18 16:20:26 2017 OS/Arch: windows/amd64 Experimental: true
Linux コンテナ
ごく普通に使えます。
> docker pull debian > docker run -it debian /bin/bash (ここからコンテナ) # uname -a Linux 9c4b258fd680 4.9.4-moby #1 SMP Wed Jan 18 17:04:43 UTC 2017 x86_64 GNU/Linux
Windows コンテナ
こちらもごく普通に使えますね。
> docker pull microsoft/windowsservercore > docker run -it microsoft/windowsservercore cmd (ここからコンテナ) > systeminfo Host Name: E631F61C1E29 OS Name: Microsoft Windows Server 2016 Datacenter OS Version: 10.0.14393 N/A Build 14393 OS Manufacturer: Microsoft Corporation OS Configuration: Standalone Server (略)
images とか ps
docker images
や docker ps
で見えるイメージやコンテナの一覧は現在有効な方しか表示されないようです。
> docker images REPOSITORY TAG IMAGE ID CREATED SIZE debian latest e5599115b6a6 8 days ago 123 MB (ここで切り替え) > docker images REPOSITORY TAG IMAGE ID CREATED SIZE microsoft/aspnet latest e761eca2f8df 6 days ago 10.1 GB microsoft/windowsservercore latest 4d83c32ad497 2 weeks ago 9.56 GB
コンテナが動いている時に切り替えると?
ステータスが「Up」のコンテナがあるときに切り替えても「Exited」になったりはしないようです。ただし docker ps
してもコンテナは見えません。
> docker run -d -p 8081:80 nginx (ブラウザで http://localhost:8081 にアクセスすると nginx がちゃんと返してくれる) (ここで切り替え) (切り替え後も nginx はちゃんと返してくれる) (ただし ps しても nginx は見えない) > docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e631f61c1e29 microsoft/windowsservercore "cmd" 11 minutes ago Up 10 minutes festive_boyd
Linux コンテナも Windows コンテナも両方気軽に使えるようになりました!