コンテナを通じてローカル パブリック 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. チューニングの必要性 私は、どのように書けばいいのか本当に分からないので、共有するために最適...
1. MS SQL Server 2005 --1. ログをクリアするexec('DUMP...
Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...
目次1. 計算プロパティとは何ですか? 2. 計算プロパティの構文3. 例1. 計算プロパティとは何...
CSS ビューポート ユニットはここ数年登場しており、時が経つにつれて、ますます多くの開発者が使用し...
React Router を理解したいなら、まず歴史を理解する必要があります。より具体的には、Rea...
ハイパーリンクはインターネット全体を接続していると言っても過言ではありません。ハイパーリンクは、別の...
目次前面に書かれた1. Ngixnイメージの作成2. Java Web (Tomcat) アプリケー...
目次序文解決:ステップ1ステップ2序文環境: VMware Workstation 上に Linux...
背景開発プロセス中に Docker コンテナ化をサポートするために、通常は Maven を使用してコ...
スクリプトの要件: MySQL データベースを毎日バックアップし、スクリプトを 7 日間保存します。...
ガラス窓今日実現するのは雨滴効果です。ただし、雨滴効果を実現する前に、まずは曇りガラス効果を作成しま...
目次HTML構造の定義入力タグのバインディング属性入力タグはキーダウンイベントをリッスンしますli ...
セルでは、明るい境界線の色を個別に定義できます。 > 基本構文<TD ボーダーカラーライ...
ダウンロードMySQL 公式ダウンロード、Windows (x86、64 ビット)、ZIP アーカイ...