DockerでWSL2を使うとVolumeの速度が遅くなる現象
今回、CPUとVGAを交換した……\ 交換する際に、フォーマットも一緒に行った。 もちろんサーバー機も掃除して、パッケージをアップデートしたのだが、Dockerをアップデートしたらパッケージエラーが出た。そこで、Dockerを一つずつすべて削除して、もう一度インストールし直した。 ところが、Dockerが新しいバージョ
今回、CPUとVGAを交換した……\ 交換する際に、フォーマットも一緒に行った。 もちろんサーバー機も掃除して、パッケージをアップデートしたのだが、Dockerをアップデートしたらパッケージエラーが出た。そこで、Dockerを一つずつすべて削除して、もう一度インストールし直した。 ところが、Dockerが新しいバージョ
今回、CPUとVGAを交換した……
交換する際に、フォーマットも一緒に行った。
もちろんサーバー機も掃除して、パッケージをアップデートしたのだが、Dockerをアップデートしたらパッケージエラーが出た。そこで、Dockerを一つずつすべて削除して、もう一度インストールし直した。
ところが、Dockerが新しいバージョンにアップデートされたことで、以前問題になっていたネットワークの外部ファイアウォールの問題が解決したような気がした。
共有ネットワークを作成しなくても、コンテナごとに必ず新しいネットワークが作成され、作成されたネットワークはCentOS 8のfirewalldで互いに共有できるように見えた(?)(もちろん、警告が出ていたのを解消してくれたからかもしれないが)。
そのため、信頼済みとして許可したネットワークではないのに、x-real-ipを取得できた。
もちろん、ほかの問題があるかもしれないので、これは後でテストして記事にすることにして、
今日の本題だが、Windowsを新しくインストールしてDockerをインストールしたところ、なんと?
WSL2というものがあるらしい。Hyper-Vは使うなと言っているみたいだけど……
https://github.com/microsoft/WSL/issues/4387
https://github.com/microsoft/WSL/issues/4197
でも、この問題についてはかなり前から話し合われていたようだ。
MicrosoftのWSLの問題のようだが、コンテナがいくら速く起動したところで何になる? いくら速く作成できたところで何になる?
もちろん、内容を見ると、VS-CODEなどでサポートされるように共有して使えばいいという人たちもいる。
でも、わざわざそんな面倒なことをする理由がわからない。
開発環境として使っているWindowsで、そこまでするくらいなら、コンテナの速度が少し遅くなっても、ボリュームマウントで手軽に作業するほうがよさそうだ……
もちろん、Docker Volumeを使う環境ならWSL2はすごく速くてよさそうだが、私はVolumeを丸ごとマウントして作業するスタイルなので……WSL2は諦めることにする、、、
とにかく、話に出ているように、みんなWSL3を待つか、WSL1(Hyper-Vだったかな?)にロールバックしているようだ。
Just want to bump this as it's Dec 8th with no resolution in sight. HTTP Requests against a Rails stack that executes in <1s on my macbook take 30+ seconds in WSL2 w/Windows.私の場合も同じく……Laravelのリクエストに合計4秒かかる……

簡単だ。WSL 2のオプションをオフにして、Hyper-Vを再び有効にすればいい。