コンテナを通じてローカル パブリック IP アドレスを取得します。ローカル IP アドレスを使用して複数のサービスを登録できます。 コマンドを ping に変更すると、異なるサーバー情報を取得できます。 パブリック静的文字列 getIfconfigIP() { BufferedReader in = null; 文字列アウトライン = ""; // タイムアウトウィンドウはミリ秒単位、Linux では秒単位です Runtime r = Runtime.getRuntime(); // 実行する ping コマンド。このコマンドは Windows 形式のコマンドです。 String pingCommand = " curl ifconfig.me "; // Windows システム String os = System.getProperty("os.name").toLowerCase(); (os.indexOf("linux")> = 0の場合) { pingコマンド = " curl ifconfig.me "; } (os.indexOf("mac")> = 0の場合) { pingコマンド = " curl ifconfig.me "; } 試す { // コマンドを実行して出力を取得します。System.out.println(pingCommand); プロセス p = r.exec(pingCommand); (p == null)の場合 { 「cmd が失敗しました」を返します。 } in = new BufferedReader(new InputStreamReader(p.getInputStream())); // 出力を行ごとにチェックし、類似の発生箇所を計算する = 23ms // TTL=62 が表示された回数 int connectedCount = 0; 文字列行 = null; ((line = in.readLine()) != null) の場合 { アウトライン += 線; } 概要を返します。 } catch (例外例) { ex.printStackTrace(); // 例外が発生した場合は false を返します return outline; } ついに { 試す { in.close(); } キャッチ (IOException e) { e.printStackTrace(); } } } docker の IP は偽物です。docker で実行されているプログラムでホスト マシンの IP アドレスを取得するにはどうすればよいでしょうか? ここにいくつかのヒントがあります p = require('child_process') .spawnSync('curl', ['ifconfig.io']) .stdout .toString() 。トリム() 追加知識: Docker ネットワークの問題。Docker コンテナ内でホスト マシンの外部 IP アドレスに ping できませんが、他のマシンの外部 IP アドレスに ping できます。 問題の説明 マシンAとマシンBはそれぞれ独自の内部IPと外部IPを持ちます。例:A-IP-internal、A-IP-external B-IP-inside、B-IP-outside、マシン A のドメイン名は www.xxx.com です。 マシンAにJenkins Dockerコンテナをインストールし、起動してコンテナに入ります。
次に、コンテナ内のホスト A のイントラネット IP に ping を実行すると、正常に動作します。
加えて: 1. Docker コンテナ外部のホストマシン A から、A-IP-outside (202.106...) への ping が成功します。 2. マシン B に Jenkins コンテナをインストールし、コンテナ内から A-IP-external (202.106...) に ping を実行します。 2. マシン B に Jenkins コンテナをインストールします。コンテナ内から B-IP-external (202.106…) に ping を実行しても失敗します。 さまざまなネットワークの問題を調べたり、コンテナやイメージを削除したり、docker を再インストールしたりしても、すべて機能しません。 要約すれば: Docker コンテナでホストのパブリック IP を ping するにはどうすればよいですか? マシン A のコンテナー内の www.xxx.com に ping を実行する必要があります。これは、マシン A のイントラネット アドレスに解決されます。 マシン A のイントラネット アドレスはコンテナ内から ping できるためです。 新しく変更された docker-compose ファイル
dockerコンテナを再構築した後、dockerコンテナに入ります
ping を介して直接実行して Docker コンテナのパブリック IP アドレスを取得する方法に関する上記の記事が、私が皆さんと共有できるすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Vue での ElementUI の使用に関する詳細な説明
>>: MySQL 8.0.22 解凍版インストールチュートリアル(初心者向け)
目次Viteを使用してvue + tsプロジェクトを作成するVue 3の3つの構文オプションAPIコ...
a タグは主にページ ジャンプを実装するために使用され、これは href 属性または onclick...
[LeetCode] 181.従業員の収入が管理職よりも多い従業員テーブルには、マネージャーを含む...
mysql 5.7.21 winx64 のインストールと設定方法: MySQLのコミュニティバージョ...
まず効果を見てみましょう: 序文:このアイデアは、Bilibili のアップロード者 Steven ...
Docker を正式に使用する前に、まず Docker でよく使用されるコマンドに慣れておきましょう...
目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...
1. コンセプト1. ホットバックアップとバックアップの違いホット バックアップは高可用性 (HA)...
目次mysql フィルター レプリケーションメインデータベースに実装ライブラリから実装いくつかの質問...
コンテナの応用はますます一般的になっていますが、大量のコンテナをどのように管理すればよいのでしょうか...
目次導入アイデアID配列インデックスのマッピング関係を確立するツリー構造の構築原理要約する導入組織階...
この記事では、MySQL 5.7.17 winx64解凍版のインストールと設定方法を紹介します。具体...
目次1. Tsとは何か2. 基本的な文法1. プリミティブデータ型を宣言する2. オブジェクト型を宣...
MySQL UNION 演算子このチュートリアルでは、MySQL UNION 演算子の構文と例を紹介...
Win10 のインストール (すでにインストールされている場合はスキップしてください) win10...