(在 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
如何让它重用旧端口?