状況
docker-compose up -dを実行すると以下のエラーが発生。
どうやら3306は既に割り当てているものがあるらしい。
ERROR: for hogehoge_database_1  Cannot start service database: driver failed programming external connectivity on endpoint qiita_clone_database_1 (36532cbe7d470eac9dce4a34198da5ebc15cd86aae371e98c9fb2d0272b6eeb9): Bind for 0.0.0.0:3306 failed: port is already allocated
対処法
sudo lsof -i:ポート番号で指定したポートを使用しているプロセスを確認することができる。
sudo lsof -i:3306で以下のログが表示される。
COMMAND    PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.docke 1372 khiro   15u  IPv6 0x68b93b7c3d446421      0t0  TCP *:mysql (LISTEN)
COMMANDの下にあるcom.dockeが実行しているプロセス名。
PIDの1372がプロセス番号を指す。
sudo kill プロセス番号で指定したプロセス番号を削除できるので,今回はsudo kill 1372 を実行。
その後、再度docker-compose up -d を実行して以下のような表示がでれば完了。
Creating hogehoge_database_1 ... done
