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インデックスが失敗するいくつかの状況の詳細な分析

推薦する

Vue Notepadの例の詳細な説明

この記事の例では、メモ帳機能を実装するためのVueの具体的なコードを参考までに共有しています。具体的...

Linux における「/」と「~」の違いの詳細な説明

「/」はルートディレクトリ、「~」はホームディレクトリです。 Linux ストレージはツリー状にマウ...

Dockerはポートを介してコンテナに接続します

Dockerコンテナ接続1. ネットワークポートマッピングPythonアプリケーション用のコンテナを...

シンプルなデータ応答システムを実装する

目次1. デップ2. 観察者を理解する3. 監視と観察者を理解する4. トリガーの依存性5. プロセ...

MySQLで重複行を削除する方法

SQL文 /* MySQL で重複行を削除するいくつかの方法 ---Chu Minfei ---20...

最高の無料英語フォント33選を紹介

チャンクファイブフリータイプファミリーCuprum JAH I フリーフォントイェセヴァブークレフィ...

Vue のクロスドメイン問題の処理と解決策の概要

ネットワークリクエストを送信すると、次の保存情報が表示されます。おめでとうございます。ドメインを越え...

MySQL で union all を使用してユニオンソートを取得する方法

プロジェクトでは、何らかの不可逆的な理由により、テーブルに保存されたデータがページの表示要件を満たす...

大規模なMySQLデータベース用のマスタースレーブシステムを構築するアイデアを共有する

今週は戦争のように忙しかったです。他人に操られているような気がします。毎日朝早く出勤して夜遅く帰り、...

opensslを使用して無料の証明書を生成する方法

1: openssl とは何ですか? その機能は何ですか?適用シナリオは何ですか? Baidu 百科...

HTMLタグIDは変数にできる

<table id=" <%=var1%>">、var1...

W3C チュートリアル (5): W3C XML アクティビティ

XML は、データを記述、保存、送信、交換するために設計されています。 XML 1.0 は XML ...

MySQLに挿入する前にデータが存在するかどうかを確認する方法

ビジネスシナリオ: 訪問者の訪問状況を記録する必要があるが、繰り返し記録することはできない挿入する前...

HTML で入力プロンプトのテキスト スタイルを変更するためのサンプル コード

多くのウェブサイトでは、入力ボックスにヒントテキストが表示されています。入力ボックスにヒントテキスト...

Dockerを使用してシンプルなJava開発およびコンパイル環境を構築する方法の詳細な説明

Java 言語には多くのバージョンがあります。一般的に使用されている Java 8 に加えて、一部の...