[Docker]Docker for Windows でディスク共有したいならWSL2をオフにしたほうが無難

以前、

というのを書いたのだが、VirtualBoxなどVMツールがHyper-Vと共存できるようになったということで休みの日に、ながら操作でVirtualBox環境を整理しながらDocker Toolbox for WindowsからDocker for Windowsに差し替えた。

デザインもおしゃれだし、操作感もMac版に近くなったし、正式版の安心感でそのまま使っていたのだが、ある日突然 画面に 「WSL2に切り替えましょう」的なアップデートが来たので、指示に合わせてWSL2パッチを当ててWSL2設定に切り替えた。

で最近案件都合から各種テスト環境を整理していたら、以前使っていたdocker-domposeがうまく動かない。どうもディスク共有が出来ていない。ネットでいろいろ引いた結果、

https://docs.docker.com/docker-for-windows/wsl/#best-practices

https://github.com/docker/for-win/issues/4812

どうやらDocker for Windows をWSL2で使うときは、ディスク共有はWSLのlinuxファイルシステム範囲内で使うべきらしい。

丁度Docker Toolbox for Windowsのディスク共有もCドライブ内で行ったほうが無難(出来ない訳ではないがそこで悩んでも無駄)と似た話でWSL内のファイルパス内を使ったほうが安定らしい。

そこでどうしても引っかかるならWSL2をオフにして、WSLでやるのがよさそう。

DockerをWindowsで使うときはローカル開発などパフォーマンスが気になるケースはほとんどないだろうから、WSL2 をオフにしておいたほうが悩まずに済む気がする。

ちなみにWSLのままであれば、docker-composeの相対パスも、絶対パス記述(D:\\xxxx\xxxx)もうまく扱ってくれた。

あとはVirtualBoxの設定のほうだな。。。以前使っていた過去環境VMは話通りほぼ動いているのだが、以前のWindows 10環境をVM化していたものは、使い物にならない速度でしか走らないので、VirtualBox環境は別マシンに分離する方向で検討中。

2021/04/11追記

現時点は徐々にWSL2に置き換え中。上記の問題が解決したかどうかは未確認だけど、WSL2のUbuntuとWindowsの間でdockerを共有出来るのは別のメリットがあったので(設定はちょこっと面倒 https://docs.docker.com/docker-for-windows/wsl/ https://docs.microsoft.com/en-us/windows/wsl/install-win10 )移行させつつある。