生成随机的非重叠docker绑定端口



我正试图从我的REST服务方法中创建并启动一个容器。我的REST服务位于Unix机器中,外部系统会发出多个请求,要求使用同样位于同一机器中的REST服务来配置和启动机器中的多个docker容器。

我的问题是,我如何决定从哪个端口启动我的集装箱。对我的REST方法的每个请求都应该在一个唯一的端口上启动一个容器,该端口在以前的请求中没有使用过。如果我生成一个随机端口号,那么我需要一些方法来确保不会重新生成相同的端口号,否则会产生端口冲突。

我每次都需要生成一个随机端口号,不重复,将使用过的端口列表存储在某个地方,每次生成随机号时都要检查该列表,以确保该端口没有被使用,在容器停止时释放该端口(更新"使用中的端口"列表以删除停止的容器)。你知道如何用Java实现这一点吗?提前感谢

为什么要随机化端口分配?

只需选择您想在机器上使用的端口范围(比如28000到28900)

当你的REST服务被调用时,你只需要检查哪个是这个范围的第一个可用端口并使用它

为什么你会让它变得很难,而它可以很容易?^^

如果你真的需要随机忽略已经占用的端口,那么你可以检查这个线程:生成除特定值之外的随机数

最新更新