4

(Mac では、Boot2Docker、docker v 1.1.1)

Docker がホスト ポートの割り当て時に使用するポートを解放しないという問題があります。たとえば、同じイメージで 3 つのコンテナーを開始します。私docker psの戻り値は次のとおりです。

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
9875e2d28c3b        49ffc1050348        /sbin/my_init       19 hours ago        Up 1 seconds        0.0.0.0:49169->22/tcp, 0.0.0.0:49170->3306/tcp   boring_goldstine
f0a40c3bb4a1        49ffc1050348        /sbin/my_init       19 hours ago        Up 6 seconds        0.0.0.0:49167->22/tcp, 0.0.0.0:49168->3306/tcp   sleepy_wright
0fb913db3528        49ffc1050348        /sbin/my_init       19 hours ago        Up About a minute   0.0.0.0:49165->22/tcp, 0.0.0.0:49166->3306/tcp   agitated_jones

ポートまでスクロールすると、49170 が最後に割り当てられたポートであることがわかります。

これらのコンテナーを停止して rm し、別のコンテナーを実行すると、Docker は利用可能な最も低いポートを使用していました。ただし、現在、数は増え続けています。

docker run -P -d 49ffc1050348

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                            NAMES
82fdf0e54846        49ffc1050348        /sbin/my_init       19 hours ago        Up 3 seconds        0.0.0.0:49171->22/tcp, 0.0.0.0:49172->3306/tcp   high_euclid

古いポートを再利用するにはどうすればよいですか?

4

1 に答える 1

3

ポートマッパーのロジックはバージョン 1.1.0 で変更されました。BeginPortRangeロジックは、 49153にリセットされるまで 65535 まで増加するように記述されています。

を使用docker run -p <host port>:<container port>して、ホスト ポートをコンテナー ポートにマップできます。

于 2014-07-17T19:57:05.887 に答える