(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
古いポートを再利用するにはどうすればよいですか?