Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 8925|Antwort: 0

Docker-Container zum Zugriff auf externe Host-Dienste

[Link kopieren]
Veröffentlicht am 19.11.2019 10:10:01 | | | |
Das Standardnetzwerk des Docker-Containers ist in Form einer Bridge (im selben LAN wie der Host, aber mit einer separaten LAN-IP); wenn das Programm in der Produktionsumgebung läuft, muss man nur die entsprechende Serviceadresse konfigurieren, um sich mit der Datenbank, Redis usw. zu verbinden.

In einer Entwicklungsumgebung, wenn der Service in Docker läuft und die Datenbank lokal läuft, ist die Konfiguration von 127.0.0.1 nicht einfach zu bedienen.

Dies kann auf zwei Arten gelöst werden.

Lösung 1:

Behandle die Host-Maschine und den Container als zwei separate Maschinen und konfiguriere bei der Konfiguration der Adresse die LAN-IP oder öffentliche IP des Host-Hosts.

Lösung 2:

Schreiben Sie die Host-Adresse jedoch direkt als: host.docker.internalDie zweite Methode erfordert eine Docker-Version größer als 18.03 und muss unter Windows und Mac verfügbar sein

Um zu testen, ob diese beiden Methoden auf den Host zugreifen können, können Sie direkt ein Image mit docker ausführen, um die Kommandozeile zu pingen:

Installiere das Ping-Tool in einem Container, der mit Docker gebaut wurde.
https://www.itsvse.com/thread-8966-1-1.html
(Quelle: Architect_Programmer)


Wie Sie auf dem obigen Bild sehen können, ist Container-Zugriffhost.docker.internalDu kannst auf den Dienst des Hosts zugreifen, indem du die Datei /etc/hosts überprüfst, wirst du feststellen, dass es keine Domain-Umleitung gibt und du kennst das spezifische Grundprinzip von Docker nicht.

Sowohl der Host als auch der Container können über host.docker.internal auf die Dienste des Hosts zugreifen, aber die vom Ping-Befehl zurückgegebene Adresse ist unterschiedlich, wie folgt:









Vorhergehend:Beispiele erklären, was Redis-Cache-Durchdringung, Cache-Lawine und Cache-Zerstörung sind
Nächster:Autofac-Fehler "Circular component dependency detected" behoben
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com