コンテナを通じてローカル パブリック 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 解凍版インストールチュートリアル(初心者向け)
この記事の例では、文字の出現回数をカウントするJavaScriptの具体的なコードを参考までに共有し...
この記事では、Vueでアップロードされた画像に透かしを追加する具体的な実装コードを参考までに共有しま...
1. カーディナリティとは何ですか?カーディナリティとは、MySQL テーブルの列内の異なる値の数を...
この記事は、VMware Workstation 12 ProのインストールLinuxチュートリアル...
この記事では、参考までに天気予報を実装するためのVueの具体的なコードを紹介します。具体的な内容は次...
HTML メールはこのサイト上の独立したホスト ページではないため、他の誰かによってホストされていま...
あなたがlinuxerだと仮定すると、 windowserだとは想定しません。Windows ユーザ...
1. CSS 方法論とは何ですか? CSS methodologiesデザイン パターンまたは CS...
1. 簡単な紹介Vue.js を使用すると、一般的なテキストの書式設定に使用できる独自のフィルターを...
インストールまず、Java と Scala をインストールし、次に Spark をダウンロードしてイ...
<br />ナビゲーションについて話すときは、ほとんどの場合、ナビゲーションがコンテンツ...
マイクロソフトIIS (Internet Information Server) は、Microso...
フロントエンド Web エンジニアとして、ページ効果を作成するときに次の現象に遭遇したことがあるはず...
Tomcat は Web コンテナとして広く知られています。Java を学び始めたときから現在の仕事...
目次マルチ環境構成とは何ですか? また、なぜそれが必要なのですか? .env ファイルはどこで設定さ...