結論
Docker desktop for macをバージョンダウンしたら治りました。
私の場合後述するようにもがきまくったので
imageもvolumeもコンテナも全て無くなりましたが
最初からバージョンダウンしておけばデータは残せたかもしれません。
(データはバックアップ取ってたので同じようにバックアップがあれば元に戻せます)
1.以下のURLから落としたいバージョン(2022年8月8日現在は4.8.1)をダウンロードします。
https://docs.docker.com/desktop/release-notes/#docker-desktop-481
2.アプリケーションフォルダのDockerをゴミ箱に入れます。
3.ダウンロードしたdmgファイルをダブルクリックでインストールします。
今回の4.8.1を落とした理由としていかに書き込みがあったからでした。
https://github.com/docker/for-mac/issues
世界中のユーザーが同じような問題を挙げてくれていてその中で
4.8.1は動いているという情報があったので決めました。
経緯
Docker DesktopをアップデートしたらDocker desktop is startingから進まなくなりました。
ログの取り方
Docker Desktop for macを立ち上げた時のログを取るには以下のコマンドで取得することができます。
% /Applications/Docker.app/Contents/MacOS/com.docker.diagnose check
行ったこと|今回は解決には至らなかったもの
Clean / Purge data
Dockerのアイコンから
↓
Troubleshoot
↓
Clean / Purge data
を実施してみましたが改善されませんでした。
具体的には今度はDocker desktop is stoppingが終わらなくなりました。
なおClean / Purge dataを実行すると以下の動作になるようです。
A disk image reset destroys all Docker containers and images local to the machine, preserving all settings.
ディスク イメージをリセットすると、マシンのローカルにあるすべての Docker コンテナーとイメージが破棄され、すべての設定が保持されます。
MacOSアップデート
次にMacOS自体が12.4だったので12.5にアップデートしてみました。
M1Max | 350Mbpsで40分くらいかかり再起動も何回かあったので
それくらいの余裕がある時に実施した方がよさそうです。
Reset Docker Desktop to factory defaults
Dockerのアイコンから
↓
Troubleshoot
↓
Reset Docker Desktop to factory defaults
を実施してみましたが改善されませんでした。
具体的には今度はDocker desktop is stoppingが終わらなくなりました。
なおReset Docker Desktop to factory defaultsを実行すると以下の動作になるようです。
A factory reset destroys all Docker containers and images local to the machine, and restores the application to its original state, as when it was first installed.
工場出荷時の設定にリセットすると、マシンのローカルにあるすべての Docker コンテナーとイメージが破棄され、アプリケーションが最初にインストールされたときの元の状態に復元されます。
Uninstall Docker Desktop
Dockerのアイコンから
↓
Troubleshoot
↓
Uninstall Docker Desktop
を実施してみましたが改善されませんでした。
具体的には今度はDocker desktop is stoppingが終わらなくなりました。
なおUninstall Docker Desktopを実行すると以下の動作になるようです。
You are about to uninstall Docker Desktop. Destroys all Docker containers and images local to the machine. Removes all files generated by the application.
Docker Desktop をアンインストールしようとしています。マシンにローカルなすべての Docker コンテナーとイメージを破棄します。アプリケーションによって生成されたすべてのファイルを削除します。
ターミナルでDockerをアンインストール
公式によると以下のコマンドでアンインストールできるとのこと。
% /Applications/Docker.app/Contents/MacOS/Docker --uninstall
しかしこちらをやってもアンインストールできませんでした。
アプリケーションフォルダから削除し再度インストール
アプリケーションフォルダから既存のDockerをゴミ箱に入れます。
そして以下のURLから新しいものをダウンロードしインストールします。
Docker desktop is startingから動かず。
プロセスを削除
プロセスが残っていると削除できないとの情報を見つけ
アクティビティモニタを覗くと2つのプロセスが見つかりました。
com.docker.driver.amd64-linux
gRPCのチェックを外す
以下の記事の通りgRPCのチェックを外した状態での起動には成功しましたが
Docker desktop is startingから動かない状況は変わりませんでした。
.dockerディレクトリを移動
~/.dockerディレクトリを移動してMacを再起動後Docker Desktop for Macを起動してみましたが
Docker desktop is startingから動かない状況は変わりませんでした。
group.com.dockerディレクトリを移動
このディレクトリを移動するとイメージなどが消えるとの情報がありましたが
やむなく移動してMacを再起動したところ元のディレクトリ(~/Library/Group Containers/group.com.docker)
に自動生成されておりました。
その後Docker Desktop for Macを起動してみましたが
Docker desktop is startingから動かない状況は変わりませんでした。
シンボリックリンクを移動しbrewからdockerをインストールしてみました
以下のコメントの手順を行いました。
がその後Docker Desktop for Macを起動してみましたが
Docker desktop is startingから動かない状況は変わりませんでした。
golangのバージョンを合わせる
dockerコマンドをテストしていて以下のようにgolangのバージョンが違っていることに気がつきました。
% docker version
Error response from daemon: dial unix docker.raw.sock: connect: no such file or directory
Client:
Cloud integration: v1.0.28
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:04:45 2022
OS/Arch: darwin/arm64
Context: default
Experimental: true
% go version
go version go1.18.4 darwin/arm64
brewでgolangをインストールしていたのをgoenvを導入し
go1.17.11にしました。
% go version
go version go1.17.11 darwin/arm64
その後Docker Desktop for Macを起動してみましたが
Docker desktop is startingから動かない状況は変わりませんでした。
ノートンのスキャンをオフにしてみる
ノートンのスキャンをオフにしてみましたが
その後Docker Desktop for Macを起動してみましたが
Docker desktop is startingから動かない状況は変わりませんでした。
参考
参考