水底

ScalaとかC#とかネットワークとか

Docker native(Windows)を2週間程使ってみた所感

最近メイン環境をMacからWinへ移行したがやはりテスト・開発・実行環境として*nix系が使いたい. ちょうどDocker nativeのβ版が来ていたため試用することにした. closed-βのため, invitation codeが必要だったが申請して数時間で発行された.

降ってきたインストーラを実行し言われるがままにインストール. 結果, Hyper-V上にMobyLinuxVMというAlpineのVMが立ち上がりその上でコンテナが走る環境が作成された. その後, 例えばPowerShell上で適当にdocker run -it -p 8080:80 --rm nginxとすることで問題なくコンテナの立ち上げに成功した. docker-composeも問題なく利用できた. また, Settings -> Manage shared drivesからチェックを入れることでhost(win) <-> MobyLinuxVM(alpine)間でボリュームが共有され, host(win) <-> containerでのボリューム共有が可能になった.

ただし, 問題が全く無いわけではない. 問題の一つとして, スリープ時の挙動が挙げられる. 明確な再現性はないが, 2, 3回に1回程度と比較的高い確率でdocker daemonがスリープからの復帰に失敗し, dockerが正常に利用できなくなる. dockerを再起動することで復活するが数分かかるため非常に手間である. もう一つの問題としてサードパーティ製品が未対応であることが多いことが挙げられる. β版なので当然といえば当然だがやはり面倒. 例えばIntellijプラグインが部分的に利用できない. 具体的にはwindowsのパス文字列に含まれる:が使えず, ボリュームの接続ができない(一応docker-compose経由にすることで回避できるが, デバッグ接続を別途する必要があったりそもそもコマンドからでいいのではという). 正式リリースされて対応するのが待ち遠しい.

FYI

ちなみにMac版は少し設定を弄ることでIntellijプラグインが使えるようだ. 以下のサイト参照.

blog.dekstroza.io

まとめ

タスクトレイに常駐するクジラがかわいい