状況
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