WSL, WSL2, and Docker、な話はおいおいでするとして。
4~5時間徘徊したかしらね、皆 wsl における「linux 側」をゴニョることで「it works for me, THX!!!!!!!!!!!!!!」が大量にヒットし、実際に皆ありがたかっているのに「どこがやねん for me」を延々繰り返してた、が…:
なんと、ホスト(Windows 側)の方だったのか…。この一つだけが初めて .wslconfig に言及してて、初見でまずはそれにビックリした。半信半疑でやってみたら it works for me。ぬぬ。なんぞそれ。(USERPROFILE がどこやねん、で3秒だけ迷走したけどね。ワタシのケースだと c:/Users/hhsprings/.wslconfig
ね。)
WSL と Docker のドキュメントは、珍しく Microsoft のものが手厚くてわかりやすいと思うんだけれど、この FAQ の回答がなんというか元凶よな、と思った。
にしても、久しぶりに vi だの nano だののお世話になったわい。
2023-04-03追記:
ちょうど一年くらい経っての追記ということになるわけだけれども、なんともよくわからん話。いやまぁ確かに「it works for me, 知らんけど」ちぅ状態だったんで、こうなることもさもありなんとも思うけれど。
要するに「せめてこうであって欲しい」:
Docker Desktop は wsl2 の上に成り立っているので、これの起動と VmmemWSL が直接連動するんだけれど、その場合に、Docker の状態によっては平気で 3GB、4GB とじゃぶじゃぶメモリを喰らい尽くしてしまって、ワタシのこの PC だとすぐにメモリ使用 95% などとなってしまう、物理メモリ8GB のローエンドPCであるからして。そして、メモリ使用は 90% を超えれば、少なくとも 8GB な PC であればもはやマウス操作やキーボード入力もスムーズにいかなくなり、まったく作業に適さない状態になる。ゆえに、「すわ、メモリ使用 limit 設定せねば」…、ということなのだけれども。
.wslconfig でそれは可能で、ゆえにこうであろう!:
1 [wsl2]
2 swap=0
3 memory=1GB
と。ところがこれはダメ。この状態にして「wsl --shutdown
」後 Docker Deskttop を起動しようと試みるとこれに失敗する。ほんとにメモリ確保出来なくて死んでるんだろう、swap=0 にしてるんだから当然だな、と思うわけだ。
そして「「WSL2 – No internet connectivity. DNS Issues(Temporary failure in name resolution) #6404」の it works for me」に話は戻るわけである。よくわからんよ:
1 [wsl2]
2 swap=2GB
3 memory=1GB
は Docker Desktop 起動の問題を解決し、そして「1GB を超えない利用をしてくれて」、そしてこれが謎だが、もはや「WSL2 – No internet connectivity. DNS Issues(Temporary failure in name resolution) #6404」が再現しない。wsl2 のアップデートが自動で入ってた、とかかしらねぇ?