Der Docker-Container wird direkt ausgeführt, um den öffentlichen IP-Vorgang über Ping abzurufen

Der Docker-Container wird direkt ausgeführt, um den öffentlichen IP-Vorgang über Ping abzurufen

Holen Sie sich die lokale öffentliche IP-Adresse über den Container. Sie können die lokale IP-Adresse verwenden, um mehrere Dienste zu registrieren.

Durch Ändern des Befehls in Ping können andere Serverinformationen abgerufen werden.

öffentliche statische Zeichenfolge getIfconfigIP()
  {
    BufferedReader in = null;
    Zeichenfolgenumriss = "";
    // TimeOut-Fenster wird in ms und unter Linux in s angegeben
    Runtime r = Runtime.getRuntime(); // Der auszuführende Ping-Befehl, dieser Befehl ist ein Befehl im Windows-Format String pingCommand = " curl ifconfig.me "; // Windows-System String os = System.getProperty("os.name").toLowerCase();
    wenn (os.indexOf("linux") >= 0)
    {
      pingCommand = " curl ifconfig.me ";
    }
    wenn (os.indexOf("mac") >= 0)
    {
      pingCommand = " curl ifconfig.me ";
    }
    versuchen
    { // Befehl ausführen und Ausgabe erhalten System.out.println(pingCommand);
      Prozess p = r.exec(pingCommand);
      wenn (p == null)
      {
        returniere „cmd fehlgeschlagen“;
      }
      in = new BufferedReader(new InputStreamReader(p.getInputStream())); // Ausgabe zeilenweise prüfen und ähnliche Vorkommen berechnen = 23ms
      // Häufigkeit, mit der TTL=62 angezeigt wird int connectedCount = 0;
      Zeichenfolgezeile = null;
 
      während ((Zeile = in.readLine()) != null)
      {
        Umriss += Linie;
      }
      Gliederung zurückgeben;
    }
    catch (Ausnahme ex)
    {
      ex.printStackTrace(); // Wenn eine Ausnahme auftritt, geben Sie false zurück return outline;
    }
    Endlich
    {
      versuchen
      {
        in.schließen();
      }
      abfangen (IOException e)
      {
        e.printStackTrace();
      }
    }
 
  }

Die IP in Docker ist gefälscht. Wie erhalte ich die IP-Adresse des Hostcomputers im in Docker ausgeführten Programm?

Hier ein paar Tipps für mich

p = erfordern('Kindprozess')
   .spawnSync('curl', ['ifconfig.io'])
   .stdout
   .toString()
   .trimmen()

Zusätzliches Wissen: Docker-Netzwerkproblem. Die externe IP-Adresse des Host-Computers kann im Docker-Container nicht angepingt werden, aber die externe IP-Adresse anderer Computer kann angepingt werden.

Problembeschreibung

Maschine A und Maschine B haben jeweils eine eigene interne und externe IP-Adresse, zum Beispiel: A-IP-intern, A-IP-extern

B-IP-innen, B-IP-außen, Maschine A hat den Domänennamen www.xxx.com

Installieren Sie den Jenkins Docker-Container auf Maschine A, starten Sie ihn und geben Sie den Container ein

#docker exec -it jenkins /bin/sh

Pingen Sie dann die Intranet-IP von Host A im Container an, und es funktioniert.

#ping A-IP-nei (172.16...) //Gibt zurück, dass der Ping erfolgreich war

#ping A-IP-outside (202.106...) // Ping fehlgeschlagen

#ping www.xxx.com // kann korrekt in die externe IP-Adresse von Maschine A aufgelöst werden, aber der Ping schlägt fehl

#ping baidu.com //Es kann erfolgreich gepingt werden.

Zusätzlich:

1. Vom Hostcomputer A außerhalb des Docker-Containers ist der Ping A-IP-outside (202.106...) erfolgreich.

2. Installieren Sie den Jenkins-Container auf Maschine B und pingen Sie A-IP-external (202.106...) aus dem Container heraus.

2. Installieren Sie den Jenkins-Container auf Maschine B. Das Pingen von B-IP-external (202.106…) aus dem Container heraus ist erfolglos.

Die Suche nach verschiedenen Netzwerkproblemen, das Löschen von Containern und Images sowie die Neuinstallation von Docker funktionieren alle nicht.

Zusammenfassend:

Wie pinge ich die öffentliche IP des Hosts im Docker-Container an?

Ich muss www.xxx.com im Container von Maschine A anpingen, wodurch die Intranetadresse von Maschine A aufgelöst wird.

Denn die Intranetadresse der Maschine A lässt sich aus dem Container heraus anpingen.

Neue geänderte Docker-Compose-Datei

zusätzliche_hosts:

- „www.xxx.com:172.16.xxx.A“

Nach dem Neuaufbau des Docker-Containers geben Sie den Docker-Container ein

#ping A-IP-outside(202.106…) //Der Ping ist erfolgreich, OK erfüllt die Anforderung.

Der obige Artikel darüber, wie man die öffentliche IP-Adresse eines Docker-Containers erhält, indem man ihn direkt über Ping ausführt, ist alles, was ich mit Ihnen teilen kann. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Beheben Sie das Problem, dass Änderungen an der Docker MySQL-Containerdatenbank nicht wirksam werden
  • Docker-Dateispeicherpfad, Befehlsvorgang zum Starten des Containers abrufen
  • Zwei Möglichkeiten zum Beenden von Bash im Docker-Container unter Linux
  • Starten Sie alle gestoppten Docker-Container mit einem Befehl neu
  • Detaillierte Erklärung der Startbefehle für Docker-Versionen es, milvus und minio
  • Docker startet das Elasticsearch-Image und behebt den Fehler nach dem Mounten des Verzeichnisses
  • Lösen Sie das Problem der Docker-Protokollmontage

<<:  Kommentare auf Webseiten verursachen Textüberlauf im Internet Explorer

>>:  Tutorial zur Installation der dekomprimierten Version von MySQL 8.0.22 (nur für Anfänger)

Artikel empfehlen

jQuery realisiert die volle Funktion des Einkaufswagens

In diesem Artikel wird der spezifische Code von j...

So verwenden Sie den Linux-Befehl md5sum

01. Befehlsübersicht md5sum - MD5-Prüfcode berech...

MySQL 8.0.21-Installationstutorial unter Windows-System (Abbildung und Text)

Installationsvorschlag : Versuchen Sie, für die I...

Eine kurze Einführung in das bionische Design im Internet-Webdesign

Beim Stichwort Bionik-Design denken viele an die E...

Wesentliche bedingte Abfrageanweisungen für MySQL-Datenbanken

Inhaltsverzeichnis 1. Grundlegende Grammatik 2. F...

Ausführliche Erläuterung zum MySQL-Lernen einer Datenbanksicherung

Inhaltsverzeichnis 1.DB, DBMS, SQL 2. Eigenschaft...

Zusammenfassung der schnellen Spaltenaddition bei MySQL 8.0 Online DDL

Inhaltsverzeichnis Problembeschreibung Historisch...

Tipps zur Verwendung von DIV-Containern mit fester Höhe in IE6 und IE7

Es gibt viele Unterschiede zwischen IE6 und IE7 in...

Tutorial zur kostenlosen Konfiguration der MySQL 5.7.18-Installationsversion

Installations-Tutorial zur kostenlosen Installati...

Eine kurze Diskussion über die Definition und Vorsichtsmaßnahmen von H-Tags

Den Ergebnissen zufolge gibt es für die Definitio...

Beispiel für die Integration von Kafka mit Nginx

Hintergrund nginx-kafka-module ist ein Plug-In fü...