Misc.

2023/04/06

Docker Desktop 4.18.0 (Docker Engine v20.10.24) - WSL Integration のタイムアウト エラーを回避

Docker Desktop 4.18.0 (104112) - Apr 3 2023 の Major アップデート(Windows/Mac/Linux)。Docker Engine は v20.10.24 に。

Docker Desktop 4.18.0
2022-04-03
https://docs.docker.com/desktop/release-notes/#4180

前回の更新:
Docker Desktop 4.17.1 (Docker Engine v20.10.23) (2023/03/21)

(アップデート後の WSL Integration タイムアウト エラーでお悩み中 → wsl --update しても、CFG オフにしても NG → Docker Desktop のアンインストール&再インストールでも NG)

WSL2 Backend で "A timeout occurred while waiting for a WSL integration agent to become ready." エラーで Docker Desktop が Quit するしかない状況になり、メッセージに従って wsl --shutdown & start Docker Desktop again しても解消しなかったら (うちでは 4.18.0 のあとに出たけど、4.17.1 でも出てたかも)・・・

アップデート前に WSL Integration をオフにしておく

システムの既定のディストリビューションで WSL Integration が有効になるのが Docker Desktop の既定(Enable integration with my default WSL distro)みたいで、うちの環境(WSL の 既定の Ubuntu 20.04 LTS)との組み合わせに問題が出てるっぽい? アップデート前にオフにしておいたら(WSL Integration 使ってないので)、エラーは出なかった。

 


または Docker Desktop 停止状態で、既定の Distro を変更する

アップデート後にエラーを回避するには、既定の Distro を別のものに変えるとかでもいけるかも。

wsl --install -d <Distro>
wsl --set-default <Distro>

とか。

kali-linux (Microsoft Store からもインストール可)を既定にしたら、問題なく WSL Integration できた。


または settings.json を書き換えて WSL Integration をオフにする

エラーで設定 (Settings > Resources > WSL Integration)開けないんだけどって場合は、%USERPROFILE%\AppData\Roaming\Docker\settings.json を直接書き換えてもいけるかも。WSL Integration をオフにするには、

"enableIntegrationWithDefaultWslDistro": false,

とか。 

手前に表示されるので思わずエラーで「Quit」しちゃったけど、もしかしたら、エラーの「Quit」を押さずに、脇にずらせば、アクティブになった設定画面を操作できるかも。

このエラーを回避するのに半日以上かけてしまった...

(追記)または WSL Integration で Ubuntu を明示的にオンにする

WSL Integration の設定にある Ubuntu のスイッチを明示的にオンにて Apply & Restart (Restart って入ってるけど、Docker Engine は Restart されない)したら、エラーにならない。なんだこれ?念のため Docker Desktop を Restart してみたけど、問題なし。

%USERPROFILE%\AppData\Roaming\Docker\settings.json だと

"integrateWslDistoros": [
  ”Ubuntu"
],
"enableIntegrationWithDefaultWslDistro": true または false,

いろいろ回り道しちゃったけど、settings.json を上のように書き換えれば最も簡単に問題解決できたかも。

 

WSL Integration ではない WSL2 Backend のタイムアウト エラーには

C:\Windows\System32\vmcompute.exe を CFG から除外するといけるかも(という伝承あり)。

 

4/23 追記) もう追いかけるのは止めるといったけど、Mirantis Container Runtime 20.10.16 (2023-04-04) が出てた。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。