Docker Desktop for Macが起動しない場合の対処法

  • docker for macがstartingのまま起動しなくなった。
  • 起動ログに制御文字が大量に出ていた
  • TUIの画面が出てるのではと推測
  • dockerのttyに繋ぐとブートメニューが出ていたので操作をして解決

Dockerが上の画像の通り、数時間以上starting状態になっていました。 この状態でrestartや再インストールしても解決せず、事実上Dockerが利用不可能になりました。

Docker Desktop for Macの起動時のログ

とりあえず起動時のログを調べます。 これは公式サイトのログの撮り方をのままです。 ただし、起動しないのは現在進行形で起きているため、取る期間を1hぐらいに狭めています。

$ pred='process matches ".*(ocker|vpnkit).*"
   || (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker")'
$ /usr/bin/log show --debug --info --style syslog --last 1h --predicate "$pred" >/tmp/logs.txt

出てきたログを見ると、以下のように制御文字らしいものとメッセージが表示されていました。 そのため、おそらくテキストユーザインタフェースで何らかの選択肢が表示されているのではと推測できます。

 2019-09-03 23:21:07.652478+0900  localhost com.docker.hyperkit[1090]:                \^[[42;58H                       \^[[43;58H                       \^[[44;58H                       \^[[44;80H\^[[08;58HThis is the option     \^[[09;58Hone adjusts to change  \^[[10;58Hthe language for the   \^[[11;58Hcurrent system         \^[[12;58H                       \^[[13;58H                       \^[[14;58H                       \^[[15;58H                       \^[[16;58H                       \^[[17;58H                       \^[[18;58H                       \^[[19;58H                       \^[[20;58H                       \^[[21;58H                       \^[[22;58H                       \^[[23;58H                       \^[[24;58H                       \^[[25;58H                       \^[[26;58H                       \^[[27;58H                       \^[[28;58H                       \^[[29;58H                       \^[[30;58H                       \^[[31;58H                       \^[[32;58H                       \^[[33;58H                       \^[[34;58H                       <…>
 2019-09-03 23:21:07.732635+0900  localhost com.docker.hyperkit[1090]:               \^[[25;58H                       \^[[26;58H                       \^[[27;58H                       \^[[28;58H                       \^[[29;58H                       \^[[30;58H                       \^[[31;58H                       \^[[32;58H                       \^[[33;58H                       \^[[34;58H                       \^[[35;^C6;58H                       \^[[17;58H                       \^[[18;58H                       \^[[19;58H                       \^[[20;58H                       \^[[21;58H                       \^[[22;58H                       \^[[23;58H                       \^[[24;58H                       \^[[25;58H                       \^[[26;58H                       \^[[27;58H                       \^[[28;58H                       \^[[29;58H                       \^[[30;58H                       \^[[31;58H                       \^[[32;58H                       \^[[33;58H                       \^[[34;58H                       \^[[35;58H                       \^[[36;58H                       \^[[37;58H                       \^[[38;58H<…>

Moby Linuxに繋ぐ

Docker Desktop for Macで動いているMoby Linuxに接続して何が起きているかを見ます。 screenコマンドを使い、 screen -f ~/Library/Containers/com.docker.docker/Data/vms/0/tty で接続できます。
https://gist.github.com/BretFisher/5e1a0c7bcca4c735e716abf62afad389

ただしどうも起動してしばらくするとなにやらおかしい状態になり、何も出来ませんでした。 そのためメニューからDcokerのRestartを行い、その後すぐにscreenで接続することでブートメニューが出現しました。

色々バグっているため勝手にカーソルが進んだりするのですが、うまくContinueに来たときにEnterを押すことで起動が始まります。 Dockerを再起動すると同じ状態になるため、毎回必要そうなのが少々面倒ですが、一応立ち上がりはするようになります。