症状

  • docker psdocker compose up が極端に遅い、またはハングする
  • Docker Desktopが起動しても応答しない
  • コンテナの起動がWARN表示で止まる

原因の特定

バックエンドログを確認する:

tail -50 ~/Library/Containers/com.docker.docker/Data/log/host/com.docker.backend.log

以下のようなログが出ていればVMがハングしている:

still waiting for linux/virtualization-framework init control API to respond after 516h55m...
context deadline exceeded

virtualization-framework のinit APIが長時間応答しない状態で、再インストールしても古いVMデータが残っていると同じ状態が続く。

復旧手順

1. 全Dockerプロセスを強制終了

killall -9 com.docker.backend com.docker.hyperkit com.docker.driver.amd64-linux Docker com.docker.vmnetd 2>/dev/null
pkill -9 -f "Docker.app" 2>/dev/null

古いdockerプロセスが残っている場合もまとめて殺す:

# 例: 古いMCPサーバー等のdocker runプロセス
pkill -9 -f "docker run" 2>/dev/null

2. 壊れたVMデータを削除

rm -rf ~/Library/Containers/com.docker.docker/Data/vms

これによりVMが新規作成される。既存のコンテナやイメージは消えるが、docker-compose.ymlがあれば再pullで復元できる。

3. Docker Desktopを再起動

open -a "Docker Desktop"

起動完了まで1〜2分待ち、docker ps が正常に返ることを確認する。

補足

  • ~/.docker の削除も有効な場合がある(レジストリ認証情報の再ログインが必要になる)
  • ps aux | grep docker でCPU使用率が異常に高いプロセスがないか確認するとよい
  • Docker Desktopの再インストールだけでは ~/Library/Containers/com.docker.docker/Data/ 配下のデータは残るため、VM関連の問題は解決しないことがある