0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerがコンテナを起動できないエラー(ポート番号のほかプロセスによる使用)

Posted at

Dockerでコンテナを起動できないという事象が発生しました。
#忘備録のためまとめています。

1. エラー内容

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
image.png

このエラーメッセージは、ポート番号がすでに使用されているためDockerがコンテナを起動できないことを示しています。具体的には、laravel8-tutorial-mysql-1コンテナがポート番号3306を使用しようとしたところ、すでに他のプロセスがこのポート番号を使用しているため、Dockerがコンテナを起動できなかったということです。

2. 原因として

ポート番号3306のコンテナを正規終了させなかったことと考えられる。

3. 解決策

3.1 使用されているポート番号を調べる

powershellから次のコードを実行すれば使用されているポート番号を調べることができます。
Get-NetTCPConnection -State Listen
image.png
(上記のようになっているはず)

3.2 ポート番号を閉じる

同じくpowershellから次のコードを実行すれば使用されているポート番号を閉じることができます。
Stop-Process -Id (Get-NetTCPConnection -LocalPort <ポート番号> -State Listen).OwningProcess -Force
(この辺のシェルについては、具体的に何をどうしているのかあんまりわかっていません。勉強のためにgoogle先生かchatGPTに聞いて学習した内容を後程追記します・・・)
image.png
(コマンドが間違っていない限り特にメッセージ等出力されないようです)

4. 終わりに

ポート番号ってなんすか??っていう状況のまま、Dockerでlaravelの環境構築を実施しました。個人開発によるDockerのハンズオン学習が狙いです。初心者の皆さん、一緒に頑張っていきましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?