[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 5261Code 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 openfireCode language: Bash (bash)

無事、docker-compose up -d できました。

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