経緯
Dockerでmailコンテナを立てようとした際に下記のエラーが発生した。
ERROR: for mail Cannot start service mail: Ports are not available: listen tcp 0.0.0.0:8025: bind: address already in use
8025ポートは既に使われているとのこと。
8025がどのプロセスで使われているのかを確認する。
$ lsof -i:8025
実行結果は下記。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
MailHog 688 UserName 8u IPv6 0x0x0x0x0x0x0x0x0x 0t0 TCP *:ca-audit-da (LISTEN)
PIDが判明したので、対象のプロセスをキル。
$ kill -9 688
8025ポートはもう使われていないはずなので、再度確認。
するが、なぜのPIDでプロセスで復活している・・
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
MailHog 50336 UserName 8u IPv6 0x0x0x0x0x0x0x0x0x 0t0 TCP *:ca-audit-da (LISTEN)
という流れを3回繰り返したので、本格的に解決していくことに。
解決
psコマンドで、起動中のプロセスを一覧表示する。
$ ps -axf
lsofコマンドでヒットしたPIDのプロセスを探してみつける。
UID PID PPID C STIME TTY TIME CMD
502 50336 1 0 3:16PM ?? 0:00.01 /usr/local/opt/mailhog/bin/MailHog
どうやらHomeBrewでinstallしていたmailhogのプロセスが8025ポートを使用していたということらしい?
具体的に何が起きていていてこの事象が発生したのかは、調べ中なのでまた後日。
brew uninstallでアンインストールして、無事解消。コンテナを立ち上げることができました。
$ brew uninstall mailhog