Dockerはコンテナにポートを動的に公開します

Dockerはコンテナにポートを動的に公開します

コンテナのIPアドレスを表示する

docker examine <コンテナ名またはID> | grep IPアドレス

コンテナのマップされたポートを表示する

docker port <コンテナ名またはID>
例えば。
docker ポート d8dac7399647
docker ポート hfq-jedi-zxf-eden

iptablesを使用してコンテナマッピングを表示する

iptables -t nat -nvL

iptables -t nat -nvL --行番号

新しいポートマッピングを追加する例

##ホストポート31101をコンテナポート6379にマップする

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 31101 -j DNAT --to-destination 192.168.42.2:6379

iptablesルールを保存する

iptables 保存

例示する

192.168.42.2 は docker examine <コンテナ名またはID>| grep IPAddress の結果です。

ポートマッピングが完了した後、docker ポート d8dac7399647 経由で結果を照会することはできません。

できる

iptables -t nat -nvL | grep 192.168.42.2

クエリマッピング関係

追加知識: Docker コンテナ通信のメカニズムとポート公開の問題

Docker コンテナ間の通信には、これまでリンク方式が使われてきました。この方法では、各コンテナの起動順序が制限されるため、柔軟性に欠けるという問題がありました。そこで今回は、Docker 独自のネットワーク カードで割り当てられた LAN を介してコンテナに直接アクセスする方法を検討しました。

Docker ポート公開とは、docker0 ネットワーク カードの転送を通じて、コンテナー自体のポート サービスを公開されたポートに転送することを意味します。たとえば、次のように実行します。

docker run -dit -p 8080:12345 --name=コンテナ名 イメージ名

docker0 ネットワーク カードによって割り当てられた 172.17.0.x ローカル エリア ネットワークを使用してアクセスする場合は、ポート 12345 を使用します。 192.168.1.xまたはその他のローカルパブリックIPを使用してアクセスする場合は、8080を使用してアクセスする必要があります。

時間が限られているので、今は詳しく分析しません。時間ができたら写真付きで分析します。

Docker が動的にポートをコンテナに公開することに関する上記の記事が、私が皆さんに共有できるすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • kubernetes1.20 で docker (shim) を containerd に置き換える問題について説明します。
  • Dockerコンテナを終了した後も実行を継続する方法
  • Dockerは異常なコンテナ操作を排除する
  • さようなら Docker: 5 分で Containerd に移行する方法
  • Dockerイメージ内のnoneイメージ操作を削除する
  • Dockerイメージのローカル移行の実装
  • Dockerイメージが消える問題を解決する
  • Docker イメージを削除できません エラー: そのようなイメージはありません: xxxxxx 解決策
  • Dockerでイメージを削除する方法
  • Docker でのコンテナとイメージの命名

<<:  Vue ミックスインの使用方法とオプションのマージの詳細な説明

>>:  MySQLデータベースエンジンをInnoDBに変更する

推薦する

node_modulesを削除して再インストールする方法

目次ステップ1: プロジェクトをインストールするディレクトリにnode_modulesをインストール...

MySQLデータ損失の原因と解決策

目次序文問題の説明原因分析拡大する総括する序文最近、データの欠落やデータの損失に関するフィードバック...

Linux での MySQL データベースのマスター スレーブ同期レプリケーション構成

Linux での MySQL データベースのマスター/スレーブ同期構成の利点は、この方法をバックアッ...

ユーザー名が使用可能かどうかを確認するVueメソッド

この記事では、ユーザー名が使用可能かどうかを確認するためのVueの具体的なコードを例として紹介します...

JavaScript キャンバス テキスト クロック

この記事では、テキストクロックを実装するためのキャンバスの具体的なコードを例として紹介します。具体的...

CSS 表示属性のインラインブロックレイアウト実装の詳細な説明

CSS 表示プロパティ注: !DOCTYPE が指定されている場合、Internet Explore...

丸い角や鋭い角を表現するために、絵の代わりに文字を使用する研究

Google Gmail ページから撮った次のスクリーンショットをご覧ください (同じ場所からスクリ...

PDO を使用して SQL インジェクションを防ぐ原理の分析

序文この記事では、SQL インジェクションを回避するために pdo の前処理メソッドを使用します。詳...

数十行のjsを使用してクールなキャンバスインタラクティブ効果を実現する方法を教えます

目次1. 円を描く2. マウスで動かした円3. マウスでドラッグした粒子4. カラーグラデーション粒...

MySQLクエリ条件の一般的な使用法の詳細な説明

この記事では、例を使用して、MySQL クエリ条件の一般的な使用方法を説明します。ご参考までに、詳細...

MySQL でのトランザクションの使用方法

基礎トランザクションは、SQL ステートメントのグループに対するアトミック操作です。つまり、グループ...

MySQL 8.0.11 Mac 用インストール ガイド

MACはmysql8.0をインストールします。具体的な内容は次のとおりです。 1. ダウンロードアド...

クエリプロファイラを使用して MySQL ステートメントの実行時間を表示する方法

前回の記事では、MySQL ステートメントの実行時間をチェックする 2 つの方法を紹介しました。今日...

WeChatミニプログラムの基本チュートリアル:Echartの使用

序文まずは最終的な効果を見てみましょう。私が自分で作った小さなデモです。まずEChartsの公式サイ...

HTML における rel="nofollow" の役割と rel 属性の使用を分析する

リンクに rel="nofollow" 属性を追加すると、検索エンジンにこの接続...