Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 8925|Antwoord: 0

docker-container om externe hostservices te bereiken

[Link kopiëren]
Geplaatst op 19-11-2019 10:10:01 | | | |
Het standaardnetwerk van de docker-container is in de vorm van een bridge (in hetzelfde LAN als de host, maar met een apart LAN-IP); wanneer het programma draait in de productieomgeving, hoef je alleen het bijbehorende serviceadres te configureren om verbinding te maken met de database, redis, enzovoort.

In een ontwikkelomgeving, als de service draait in docker en de database lokaal draait, is het configureren van 127.0.0.1 niet eenvoudig te gebruiken.

Dit kan op twee manieren worden opgelost.

Oplossing 1:

Behandel de hostmachine en container als twee aparte machines, en configureer het LAN-IP of publieke IP van de hosthost bij het configureren van het adres.

Oplossing 2:

Schrijf het hostadres echter direct als: host.docker.internal,De tweede methode vereist docker-versie groter dan 18.03 en moet beschikbaar zijn op Windows en Mac

Om te testen of deze twee methoden toegang hebben tot de host, kun je direct een image uitvoeren met docker om de commandoregel te pingen:

Installeer de pingtool in een container die met Docker is gebouwd
https://www.itsvse.com/thread-8966-1-1.html
(Bron: Architect_Programmer)


Zoals je op de bovenstaande afbeelding kunt zien, container-toeganghost.docker.internalJe kunt toegang krijgen tot de service van de host; door het /etc/hosts-bestand te controleren, zul je zien dat er geen domeinnaam-redirect is en je het specifieke onderliggende principe van docker niet kent.

Zowel de host als de container kunnen toegang krijgen tot de diensten van de host via host.docker.internal, maar het adres dat door het ping-commando wordt teruggegeven is anders, als volgt:









Vorig:Voorbeelden verklaren wat Redis-cachepenetratie, cachelawine en cache-breakdown zijn
Volgend:Autofac "Circulaire componentafhankelijkheid gedetecteerd" fout opgelost
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com