エラー内容
docker compose up
を実行すると、以下のエラーがでました。
ERROR: for db Cannot start service db: Ports are not available: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
エラー文を見る限り、3306ポートが使えないというエラーのようです。
ちなみに、docker-compose.ymlは以下です。
docker-compose.yml
services:
db:
(中略)
ports:
- 3306:3306
試したこと
以下文言で検索
Ports are not available: listen tcp 0.0.0.0:3306
以下の記事にたどり着き、原因が判明しました。
https://stackoverflow.com/questions/64307077/docker-compose-only-one-usage-of-each-socket-address-protocol-network-address
原因
Port 3306 is already in use.
ポートがすでに使用されているため使えないということらしい。
解決策
ポート番号を3306以外にすれば良さそう
docker-compose.yml
services:
db:
(中略)
ports:
- 3366:3306 ★ 3306とは別のポートを指定してあげる
結果
再度docker compose up
を実行すると、エラーが出なくなりました。