LoginSignup
6
6

More than 3 years have passed since last update.

Docker for Windowsで未使用ポート(DB2デフォルトポート50000)が使えない

Last updated at Posted at 2019-05-11

丸一日ハマったので記録に残しておきます。(2019/5/11現在)
DB2コンテナを使いたかっただけなんです。 https://hub.docker.com/r/ibmcom/db2express-c
サイトに記載のある初期コマンドを打鍵すると。

>docker run -it -p 50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept ibmcom/db2express-c:latest bash
docker: Error response from daemon: driver failed programming external connectivity on endpoint gifted_galileo (a33121d9f04b58b0884794b75536a601576bbe329bfa6229bd7f9336c3f06a28): Error starting userland proxy: Bind for 0.0.0.0:50000: unexpected error Permission denied.

Permission deniedだと言われる。(ポートを8080とかにすると使える)
netstat等を使って調べても明らかに50000ポートは使ってない。

色々ググって結論はコレ。の末尾。
https://stackoverflow.com/questions/54181219/windows-cant-bind-to-port-above-49690

It turned out the real problem was Docker.

真の問題はDockerだと。

除外ポートを追加しろとの事なので私は下記の通り設定&確認。(管理者権限のコマンドプロンプトで実施)

>netsh int ip add excludedportrange protocol=tcp startport=50000 numberofports=10
OK 
>netsh int ip show excludedportrange protocol=tcp
プロトコル tcp ポート除外範囲
開始ポート    終了ポート
----------    --------
      5357        5357
     50000       50009     *
     50570       50669
     50670       50769
     50770       50869
     50970       51069
     51070       51169
     51202       51301
     51563       51662
* - 管理されている除外ポート。

「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」と出るときは再起動して実施。
設定後も念の為再起動。
無事起動できるようになりました♪

C:\Users\hide>docker run -it -p 50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept ibmcom/db2express-c:latest bash
Changing password for user db2inst1.
New password: BAD PASSWORD: The password contains the user name in some form
Retype new password: passwd: all authentication tokens updated successfully.
[root@6b4852df5790 /]#

49152より大きいポートで同様の事象に遭遇した場合は、使いたいポートを除外登録すれば良さそうです。

6
6
2

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
6
6