Docker を立ち上げようとしたら毎回 8888 ポート使われてると言われて困っていた
環境
- MacBook air M2 2022
- macOS Monterey
12.6
現象
$ docker compose up … Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8888 -> 0.0.0.0:0: listen tcp 0.0.0.0:8888: bind: address already in use # port 8888 を使っているプロセスを探す $ lsof -i -P | grep 8888 java 83356 kikiki 49u IPv6 0x1234567890123456 0t0 TCP *:8888 (LISTEN) # java のプロセス (83356) を落とす kill -9 83356
毎回 java が 8888 ポートを使っていてめちゃくちゃ邪魔だった…
なにかインストールした記憶がなかったので、再起動したら治るかと思ったけどそうでもなかった…
毎回 java を kill するのが面倒すぎて原因を調査したメモ
結論 VS Code の W3C Validation エクステンション が原因っだった
何かしらレコメンドで出てきてインストールしてたっぽい。
このエクステンションが原因で VS Code 起動時に常時 java が 8888 ポートで通信を行うようになってた。
一度 uninstall するか disabled すれば再度有効にしても java が 8888 ポートを専有してしまう問題が解決できた。特に必要なさそうだったので一旦 uninstall してしまった
調査方法
- アクティビティモニターを起動
- ネットワークタブを選択
java
で検索- プロセスをクリックして詳細を表示
- 詳細の開いているファイルとポートタブを選択
- ログからどのアプリがこのプロセスを実行しているのかを探す
今回はこのような感じになっており umoxfo.vscode-w3cvalidation-2.9.1
で検索して VS Code の VS Code W3C Validation extention が原因だったことを突き止められました。
プラグインの説明に常時ネット経由で確認するとかは書かれておらず、拡張を disabled にしたら再度有効にしても同じ現象は発生しなかったので、拡張インストール時に java のインストールも求められそれが何らかの理由で暴走しているような状態だったのかもしれません。
おわり
[参考]
port = 港 …