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?

More than 1 year has passed since last update.

Windows11 で Docker 環境構築中に TCP Port 9001 が利用できないエラーが発生した時の解決方法

Posted at

結論

別のポートを利用することで解決しました。

背景

以下の docker-compose.yml をもとにコンテナを起動しようとしたところエラーが発生したので、解決までにやったことを記載していきます。

docker-compose.yml
version: "3"
services:

  ps-db-user:
    image: postgres:latest
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: password
    ports:
      - 5432:5432
    volumes:
      - user_volumes:/var/lib/postgresql
  ps-db-data:
    image: postgres:latest
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: password
    ports:
      - 5433:5432
    volumes:
      - data_volumes:/var/lib/postgresql
  minio:
    image: minio/minio:latest
    environment:
      MINIO_ROOT_USER: root
      MINIO_ROOT_PASSWORD: password
    volumes:
      - .minio:/data
    command: server --console-address ":9001" /data
    ports:
      - 9000:9000
      - 9001:9001
volumes:
  user_volumes:
  data_volumes:

開発環境は以下の通りです。

  • Windows11
  • Docker Desktop 4.28.0

エラー内容

docker-compose up でコンテナを起動しようとしたところ TCP Port 9001 が利用できないというエラーが発生しました。

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:9001 -> 0.0.0.0:0: listen tcp 0.0.0.0:9001: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

該当ポートの利用状況を確認

netstat コマンドを利用し、9001 ポートの利用状況を確認しました。

netstat -ano | Select-String ":9001"

結果は以下の通りです。
一番右側はプロセスID(PID)という OS が実行中のプロセスの識別子が表示されます。
このケースでは、PID 4 が 9001 を利用中ということがわかりました。

  TCP    0.0.0.0:9001           0.0.0.0:0              LISTENING       4
  TCP    [::]:9001              [::]:0                 LISTENING       4

該当プロセスの確認

次は PID 4 が何のプロセスを実行中であるかタスクマネージャーで確認します。
このケースでは、NT Kernel & System を実行中ということがわかりました。

image.png

ポートの変更

NT Kernel & System を停止するよりも Docker 側で利用するポートを変更するほうが安全なので、90009100 へ、90019101 へ変更します。

docker-compose.yml
version: "3"
services:

  ps-db-user:
    image: postgres:latest
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: password
    ports:
      - 5432:5432
    volumes:
      - user_volumes:/var/lib/postgresql
  ps-db-data:
    image: postgres:latest
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: password
    ports:
      - 5433:5432
    volumes:
      - data_volumes:/var/lib/postgresql
  minio:
    image: minio/minio:latest
    environment:
      MINIO_ROOT_USER: root
      MINIO_ROOT_PASSWORD: password
    volumes:
      - .minio:/data
    command: server --console-address ":9101" /data
    ports:
      - 9100:9000
      - 9101:9001
volumes:
  user_volumes:
  data_volumes:

動作確認

docker-compose up でコンテナを起動できることが確認できました。

image.png

参考

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?