コンテナを通じてローカル パブリック 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 解凍版インストールチュートリアル(初心者向け)
目次コンポーネント設計最終的なコンポーネントAPIの定義コンポーネント構造の定義テンプレートとスタイ...
とあるサイトからレンタルした仮想マシンの有効期限が近づいており、更新料が200元以上かかります。Al...
この記事は Tom Ewer の Managewp ブログからのもので、現在人気のレスポンシブ デザ...
目次背景: Nginx スムーズ アップグレード ソリューションフォールバック手順要約する背景:負荷...
HTML では、一般的な URL はさまざまな方法で表現されます。相対 URL:コードをコピーコード...
この記事では、お絵かきボード/サインボード機能を実現するためのJSキャンバスの具体的なコードを参考ま...
HTML 中心のフロントエンド開発は、ほぼ Web 標準の意味です。共通しているのは「分離」という考...
yumを使用してcentos7.3にDocker V1.13.1をインストールしましたしかし、doc...
最近、ストアド プロシージャの名前を変更する機能を使用しました。インターネットで情報を検索しましたが...
この記事では、CSS で 2 つの固定列と 1 つのアダプティブ列を実装するいくつかの方法を紹介し、...
mysqlはブール型を返します最初のケースでは、直接戻ります select id='22a...
リソースを節約するためにWebページの圧縮を設定する1.まず、設定を変更しましょう vim /usr...
1. インストールプロセスMySQL バージョン: 5.7.18 1. my.ini ファイル(簡易...
目次データ列を分離するプレフィックスインデックスとインデックスの選択性データ列を分離するMySQL ...
目次序文SSHとは何かssh は何に使用されますか? sshの使い方ssh 再修正要約する序文ssh...