[docker-compose] Error starting userland proxy: listen tcp 0.0.0.0:xxx: bind: address already in use

エラー状況

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 できました。

タイトルとURLをコピーしました