この記事はなに?
表題の問題への対処法を記載します.
現象
Docker for Mac をインストールしようとすると,
Fatal Error: Communication with networking components failed
というエラーでこけることがあります.詳細を表示すると
/var/tmp/com.docker.vmnetd.socket does not exist
などと出てます.
対処法
このエラーを引き起こす原因は2つあります,僕は以下のその1のみ試してその2の存在に気付かなかったためずっと困ってました.
その1
この issue などを参照し以下のコマンドを走らせます.
$ sudo chown root:wheel /Applications/Docker.app/Contents/Resources/com.docker.vmnetd.plist
$ cd /Library/LaunchDaemons
$ ln -s /Applications/Docker.app/Contents/Resources/com.docker.vmnetd.plist
以下のその2の場合を除いてこれで治るかと思います.
その2
その1を試しても相変わらずエラーを吐くことがあります.結論から言うと,死ぬほどしょうもないのですが /var/tmp
に com.docker.vmnetd.socket
を置きたいのにそもそも /var/tmp
が存在しないことが原因でした.
$ ls /var/tmp
としてみて,ls: /var/tmp: No such file or directory
などと出たらビンゴです.以下のように作成することで解消できます.
$ sudo mkdir -p /var/tmp
終わりに
本当にしょうもないのですが意外とハマったので書き残しておきます.そもそも自分の Mac に /var/tmp
なかったことにも驚きですが,それ以上に sudo 渡してるのにディレクトリ作ってくれない docker 氏…って感じですね.以上です.