🐳

'Only one usage of each socket address'? なんそれ??

2022/01/16に公開

環境

OS: Windows10 Home 21H1

Docker Desktop 4.3.2
Docker Compose: v2.2.1

何が起きたのか

いつも通り

$ docker-compose up -d

しただけなんです。そうしたら

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のポートが使えないよ。すでに使われてるからね

…ってコト!?

調べてみた

$ netstat -nao | findstr "3306"

でポート番号 3306 のプロセスを調べることができる。すると

TCP         0.0.0.0:3306           0.0.0.0:0              LISTENING       4780
TCP         [::]:3306              [::]:0                 LISTENING       4780

ほう。つまり PID が 4780 のプロセスがコンテナの起動を阻害してるわけね。ふーん

PID4780

タスクマネージャーでPIDは調べられる。
タスクマネージャーの"詳細"タブからPIDをソートして、3306 を探す。

名前       | PID  | 状態   | …
mysqld.exe | 4780 | 実行中 | …

mysqld.exe 君さぁ

最後に

タスクマネージャー君から強制的に切ったけど根本的解決にはなってない気がする。方法探さないと(-_-;)

Discussion