コンテナを通じてローカル パブリック 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 解凍版インストールチュートリアル(初心者向け)
目次1. インストール2. videojsの紹介3. コンポーネントでのテストと使用1. 基本的な自...
目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...
SHTMLとASPは似ています。SHTMLという名前のファイルでは、SSIの命令がASPの命令と同じ...
目次1. JavaScriptの問題2. TypeScriptの利点3. TypeScriptの欠点...
目次序文レンダリングsetTable コンポーネント使用結論序文フォームを使用して PC 側のプロジ...
まず、サーバー環境情報: アンインストールの理由:しばらくするとホストマシンのディスクが100%にな...
序文Intel のハイパースレッディング テクノロジーにより、1 つの物理コア上で 2 つのスレッド...
MySQL x64 はインストーラーを提供していません、インストーラーを提供していません、インストー...
目次序文基本的な紹介コードの実装基本構造アップロード分析Excel にエクスポート基本構造Excel...
この記事では、支払いの10秒カウントダウンを実現するためのJavaScriptの具体的なコードを参考...
画像タグ <IMG> を挿入します。今日私たちが目にするカラフルなウェブページはすべて、...
1. カスタムテキスト選択 ::選択{ 背景: 赤; 色: 黒; } 2. ビデオコントロールからダ...
dockerfile またはコンテナ内で yum を実行すると、エラーが報告され、ソースが見つかりま...
コードをコピーコードは次のとおりです。 .sugLayerDiv{位置:相対; overflow:h...
Ⅰ. 問題の説明: html+css を使用してシンプルなナビゲーション バーを実装します。 **...