dockerの動作がおかしくなっていたのでTroubleshoot機能で直した

最近仕事用のPCで下記の事象が発生するようになり、困っていました。

  • 頻繁にコンテナが固まる
  • docker compose down でコンテナが落ちない(24sでtimeoutする)
  • コンテナに対してVS Codeのリモートデバッグを実行した時にハングアップする

コンテナがおかしくなる度に killall Docker コマンドでプロセスを停止していたのですが流石に辛い。問題解決のため設定を確認していたところ、Troubleshootという機能を見つけたので試しました。

DockerのTroubleshoot機能

docker desktopにTroubleshootという機能があり、docker desktopの完全アンインストールやkubernetes clusterのリセットなどができます。

今回は下記を試しました。

  • Clean / Purge data…ディスクの破損、dockerエンジンが起動しないなどの問題が解決される。imageやcontainer, networkなどは全て吹き飛ばす。docker desktopの設定は保持される。
  • Reset to factory defaults…工場出荷時に戻す。imageやcontainer, netoworkは全て吹き飛び、docker desktopの設定も消える。

後者の Reset to factory default で解決しました。

まとめ

Dockerfileとdocker-comose.ymlの書き方に原因があると思っていたのですが、docker desktop側の問題だったのは盲点でした。

docker desktopをアップデートしたタイミングなどでおかしくなるっぽい気がしているので、その時に Reset to factory default をとりあえずやっておくと良さそう。