2017-02-02 6 views
0

RESTサービスメソッド内からコンテナを作成して開始しようとしています。私のRESTサービスはUnixマシンに常駐しています。同じマシンにあるRESTサービスを使用して、複数のドッキング・コンテナを構成し、起動するための外部システムからの複数の要求があります。ランダムで重複しないドッカーバインディングポートを生成します。

私の質問はどのように私のコンテナを始めることができるポートを決定するのですか?私のRESTメソッドに対する各リクエストは、以前のリクエストで使用されていなかった一意のポートでコンテナを開始する必要があります。ランダムなポート番号を生成する場合、同じ番号が再生成されないようにする必要があります。そうしないと、ポートの競合が発生します。

私は毎回ランダムな番号を生成する必要があります。反復しないで、使われているポートリストをどこかに保存し、乱数を生成してポートが使われていないことを確認するたびにリストをチェックしてください。コンテナが停止します(「使用中のポート」リストを更新して、停止したコンテナを削除します)。どのようにJavaでこれを達成するための任意のアイデア?事前に感謝します

答えて

1

なぜあなたはポート割り当てをランダム化しましたか?

ちょうどあなたのRESTサービスが呼び出されると

、あなたはこの最初の利用可能なポートであるチェックする必要があります(のは28000 28900に言わせて)あなたがあなたのマシン上で使用するポートの範囲を取りますそれを使用してください。

なぜ簡単にできないのですか?我々は範囲で最初に使用可能なポートをチェックしますかどのように Generate random numbers except certain values

+0

任意のポインタ:^^

あなたは本当に、あなたはこのスレッドをチェックすることができ、すでに撮影したポートを無視してランダム化する必要がある場合は? – user1722908

+0

ビジー状態のポートのリストを保存しているためです。このリストをループして、チェーンの最初の穴(最初は空)または次の使用可能なポートを見つけることができます。ループがポートリストの最後に達した場合 –

関連する問題