Docker for Mac/Windowsが妙に遅い時はResource Saverをオフに
Docker Desktopにはversion4.24以降から提供されているResource Saverという新機能があります。これは、一定時間コンテナが動作していない場合に Docker Desktop の Linux VM を自動的に停止することで、ホストのCPUとメモリ利用を削減してくれる機能です。
つまり無駄にリソースをDockerに奪われずに済むため、とても良い新機能です。これが有効になっていると、Dockerアイコンの上に葉っぱのようなアイコンが付きます。
ただ、何らかの不具合で意図せずResource SaverモードがOnになりっぱなしになることがあり、この状態でDockerの操作をすると何をしても遅くなってしまいます。この遅い、というのは実行処理が遅くなるというよりは、docker compose
コマンドの終了が妙に遅くなるという感じです。
例えば docker compose exec app echo 1
とやって、即座に 1
が出力されるものの、そのままプロンプトが操作可能になるまで30秒ほどかかったり、コンテナから抜けるのに同様に時間がかかったり、コンテナを停止するのにも停止自体は完了しているのにコマンドは終了しなかったり…。
という感じで、何をするにしても遅くつらいです。
こんな状態にハマってしまった場合は、Docker Desktopの設定からResource Saverモードを無効にしましょう。
再現性が難しく不具合なのかなんなのか分かりませんが、同様の症状の方が少しでも救われるように書いておきます。また、Resource Saverモードを無効にしても再発することもありますが、そのときはDockerを再起動するなどを試してみてください。
似たような症状のIssueは上がっているようです。
Discussion