Dockerでudpポート番号を指定する問題を解決する

Dockerでudpポート番号を指定する問題を解決する

Docker はコンテナを起動するときにアクセス ポートを指定します。複数の -p オプションを使用して複数のポート マッピングを指定できます。

udp はバックグラウンドで独自のポート番号を持ちますが、これはサービスがアクセスするポート番号とは異なります。このとき、サービスを起動するときにそれを指定する必要があります。

のように:

docker run -p 8080:8090 -p 10000:11000/udp aaa:最新

8080 はサービス自体によって公開されるポート番号であり、8090 はサービス自体のポート番号です。 10000 は udp によって公開されるポート番号で、11000 は udp 自体が listen するポートです。udp の場合は、宣言するように注意してください。

補足知識: Dockerコンテナ内のプロジェクトはudpをリッスンしており、メッセージを受信できません

コンテナを生成して実行するときに、外部公開ポートを設定する必要があります。udp を使用する場合は、udp ポートも別途指定する必要があります。

1.udp送信者(ip xxxxxx ポート: 9200)

現在のディレクトリに Dockerfile を作成し、それを使用してイメージ docker build -t イメージ名を生成します。(最後のドットを忘れないようにしてください。これはディレクトリを意味します)

生成されたイメージを実行します。docker run -tid --name コンテナ名 -p 19008:8080 --restart=always イメージ名

注: 送信者はポートを公開する必要はありません。送信者はマシンのポートを使用する必要がないことは理解できます。送信時に、情報にターゲット ホストの IP とポートが含まれているだけです。

2.UDP受信側

現在のディレクトリに Dockerfile を作成し、それを使用してイメージ docker build -t イメージ名を生成します。(上記と同じ)

生成されたイメージを実行します。docker run -tid --name コンテナ名 -p 19008:8080 -p 9200:9200/udp --restart=always イメージ名

注: 受信側はポートを公開する必要があります。受信側はローカルマシンのポートをリッスンする必要があることは理解できますが、ホストマシンの対応するポートはコンテナ内でリッスンできません。たとえば、1 で送信された udp 情報はホストポート 9200 に対応していますが、2 のコンテナ内の udp 受信側がホストポート 9200 をリッスンしたい場合は、コンテナ内の 9200 をホストの 9200 にマッピングする必要があります。

結果: 上記の設定後、udpメッセージは正常に受信されました

上記のdockerでudpポート番号を指定する問題を解決する記事は、編集者が皆さんと共有する内容のすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 複数の Docker コンテナが同じポート番号を持たない場合の解決策
  • Raspberry Pi シリーズ: Docker を使用して Qinglong Panel をインストールし、ポート番号の設定の問題を変更する

<<:  vuex での mapState の考え方の応用

>>:  MySQLインデックスが失敗するいくつかの状況の詳細な分析

推薦する

HTML(CSSスタイル仕様)を読む必要があります

CSS スタイル仕様1. クラスセレクター2. タグセレクター3. IDセレクター4. CSSスタイ...

CSS3 で z-index が効かない問題の解決方法

最近、CSS3 と js の組み合わせを作成したのですが、z-index が有効にならないケースが多...

Ubuntu 18.04 Linux システムに JDK と Mysql をインストールする方法

プラットフォームの展開1. JDKをインストールするステップ1. OracleJDKをダウンロードす...

Web 開発チュートリアル クロスドメイン ソリューションの詳細な説明

序文この記事では、主にWeb開発のためのクロスドメインソリューションを紹介し、参考と学習のために共有...

JavaScript シミュレーション計算機

この記事では、JavaScriptシミュレーション計算機の具体的なコードを参考までに紹介します。具体...

React でのポータルとエラー境界処理の実装

目次ポータルエラー境界処理エラー境界を使用しない場合はどうなりますか?注記ポータルスロットとも言えま...

MySQL 自動インクリメント ID 枯渇の例

ディスプレイ定義IDテーブルに定義された自動増分IDが上限に達した場合、次のIDを申請する際に得られ...

Vueページの初回読み込み最適化の全プロセス

目次序文1. 画像の最適化2. .mapファイルの生成を無効にする3. ルーティングの遅延読み込み4...

Linux がますます人気になっている 10 の理由

Linux はますます多くのユーザーに愛されてきました。なぜ Linux はこれほど急速に発展し、い...

動的および静的分離を実装するための Nginx サンプル コード

この記事のシナリオと組み合わせて、Nginx と Java 環境 (SpringBoot プロジェク...

mysql と oracle のデフォルトのトランザクション分離レベルの説明

1. トランザクション特性(ACID) (1)原子性トランザクションに関係するプログラムによって実行...

Vueルータールーティングの詳細な説明

目次1. 基本的な使い方2. 注意すべき点3. マルチレベルルーティング(マルチレベルルーティング)...

MYSQL クエリの効率を向上させる 10 の SQL ステートメント最適化テクニック

MySQL データベースの実行効率はプログラムの実行速度に大きな影響を与えます。データベースの効率的...

div の水平レイアウトを両側に揃える 3 つの方法

この記事では、主に、div の水平レイアウトの両側の配置を実装する 3 つの方法を紹介し、それらを共...

dockerコンテナがIP経由でホストマシンにアクセスできない問題を解決する方法の詳細な説明

問題の起源docker を使用する場合、残念ながら docker コンテナ内のホストのポート 80 ...