エラー状況
docker-compose up -dしたら、そのポート番号はすでに使われているとのエラー。
downして、再度 up -dしても同じエラーです。
$ sudo docker-compose up -d
Createing xxx ...
Createing xxx ... error
ERROR: for xxx Cannot start service phpmyadmin: driver failed programming external connectivity on endpoint xxx (xxx): Error starting userland proxy: listen tcp 0.0.0.0:5262: bind: address already in use
ERROR: Encountered errors while bringing up the project.
Code language: Bash (bash)
おとといは動いていたのに...
docker-compose ps で確認すると、Exit 128、終了していました。
$ docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------
xxx_container /docker-entrypoint.sh apac ... Exit 128
Code language: Bash (bash)
他プロジェクトのdockerコンテナと、ポート番号は衝突しないようにしているはずですが、docker psで確認します。
$ docker ps
(略)
$ docker ps | grep 5261
Code language: Bash (bash)
やはり、同じポート番号で動いているdockerコンテナはありませんでした。
対応
そのポート番号を使っているプロセスを調べます。
$ sudo lsof -i -P | grep "LISTEN" | grep 526
java 30224 openfire 194u IPv6 318442078 0t0 TCP *:5269 (LISTEN)
java 30224 openfire 279u IPv6 318431093 0t0 TCP *:5262 (LISTEN)
java 30224 openfire 307u IPv6 318425395 0t0 TCP *:5263 (LISTEN)
Code language: Bash (bash)
あー、openfireが起動している!
「実践テスト駆動開発」の写経をしていて、openfireを起動していたのでした。
openfireを停止します。
$ sudo systemctl stop openfire
Code language: Bash (bash)
無事、docker-compose up -d できました。