dockerコンテナが起動しなかった件


ある初心者向け教材のサンプルコマンドを入力した際、コンテナが起動しなかったのでその原因について調べてみました。

打ち込んだコマンドは下記の通り。

docker run -d -p 80:80 --name myapp  php:7.0-apache

そしてこんな感じのエラーメッセージが表示されました。

Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE).

80のポート番号がすでに使われていて発生したエラーらしい。
下記コマンドを入力する。

sudo lsof -i -P | grep "LISTEN"

TCP *:80 (LISTEN)と表示されるサービスがあったら停止させる。
今回は別のハンズオンで使ったnginxが生きていたので下記コマンドで止めてやりました。

sudo nginx -s stop

これで最初のコマンドが通ります。