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

推薦する

SQLのさまざまな結合サマリーの詳細な説明

SQL 左結合、右結合、内部結合、自然結合 さまざまな結合の概要SQL には、左結合、右結合、内部結...

MySQL ステートメントを使用した簡単な追加、削除、変更、クエリ操作の例

この記事では、例を使用して、MySQL ステートメントを使用して、単純な追加、削除、変更、およびクエ...

JavaScript を使用してハイパーリンクのリダイレクトを防ぐ方法 (複数の書き方)

JavaScript を使用すると、ハイパーリンクがジャンプするのを防ぐことができます。方法は次の...

Windows 8 での MySQL 5.6.15 のインストールと設定方法のグラフィック チュートリアル

MySQLは私がとても気に入っているデータベースです。今日はWindows 8システムでインストール...

MySQL の pid とソケットの詳細な説明

目次1. pidファイルの紹介2.ソケットファイルの紹介要約:ソケット ファイル: Unix ドメイ...

雨滴効果を実現する JavaScript キャンバス

この記事では、雨滴効果を実現するためのJavaScriptキャンバスの具体的なコードを参考までに紹介...

WeChatアプレットが左右連携を実現

この記事では、WeChatアプレットの左右連動を実現するための具体的なコードを参考までに紹介します。...

1 時間で MySQL データベースを学ぶ (Zhang Guo)

目次1. データベースの概要1.1 開発の歴史2. MySQL の紹介2.1. MySQLの概要2....

CSS3で跳ねるボールのアニメーションを実現

私は通常、大手ウェブサイトの特別ページや製品リリースページを訪問するのが好きです。なぜなら、たくさん...

CSS3を使用してオンラインライブ放送に似たキューアニメーションを実装する方法

以前、グループの友人が質問しました。つまり、ミニプログラムでユーザーがオンラインになったときに、ライ...

line-height=height要素の高さだがテキストが垂直方向に中央揃えされない問題を解決する

まず、行の高さが要素の高さと等しい場合にテキストが垂直方向に中央揃えにならない理由を説明します。実際...

Vue.js でフォントを読み込む正しい方法

目次font-faceでフォントを正しく宣言するフォントをプリロードするフォントをホストするにはli...

Dockerでランナーコンテナを構成する方法

1. ランナーコンテナを作成する mk@mk-pc:~/Desktop$ docker run -d...

Linux環境でよく使われるMySQLコマンドの紹介

mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...