目的
- dockerのコンテナを起動しようとした時にエラーが発生し解決した話をまとめる
実施環境
- 下記の方法でDocker Desktop for Macをインストールした。
問題までの経緯
-
dockerファイルが存在するディレクトリに移動し下記コマンドを実行してコンテナの起動を試みた。
$ docker-compose up -d
問題
-
下記のエラーが発生した。
ERROR: for コンテナ名 Cannot start service php: Ports are not available: listen tcp 0.0.0.0:80: bind: address already in use ERROR: for php Cannot start service php: Ports are not available: listen tcp 0.0.0.0:80: bind: address already in use ERROR: Encountered errors while bringing up the project.
解決までの経緯
-
下記コマンドを実行して使用されているポートを調べた。apacheが動いている様である。
$ sudo lsof -i -P | grep ":80" > httpd 339 _www 4u IPv6 0x666e8ad53dfbd5c3 0t0 TCP *:80 (LISTEN)
-
下記コマンドを実行してhttpdを止めようとした。(皆さんは下記コマンドでhttpdを止められるはずである。)
$ sudo service httpd stop
-
先のコマンドを実行したがhttpdはすでに停止している旨の出力が得られた。
-
Macローカルのhttpdは現在使用しておらず強制停止しても問題ないこと、Dockerのコンテナ起動を急いでいたことから下記コマンドを実行してヒットしたプロセスをkillした。
$ kill -l 339
-
下記コマンドを実行したら正常にコンテナが起動した。
$ docker-compose up -d
-
コマンドだけではなく、アクティビティモニターにてhttpdを検索して強制終了する方法も実施することができる。