Standardnetværket i docker-containeren er i form af en bro (i samme LAN som værten, men med en separat LAN-IP), når programmet kører i produktionsmiljøet, behøver du kun at konfigurere den tilsvarende serviceadresse til at forbinde til databasen, redis osv.
I et udviklingsmiljø, hvis tjenesten kører i docker og databasen kører lokalt, er det ikke let at konfigurere 127.0.0.1.
Dette kan løses på to måder.
Løsning 1:
Behandl værtsmaskinen og containeren som to separate maskiner, og konfigurer værtens LAN-IP eller offentlige IP, når adressen konfigureres.
Løsning 2:
Skriv dog værtsadressen direkte som: host.docker.internal, dogDen anden metode kræver docker-version større end 18.03 og skal være tilgængelig på Windows og Mac。
For at teste om disse to metoder kan tilgå værten, kan du direkte køre et billede med docker for at pinge kommandolinjen:
Som du kan se på billedet ovenfor, containeradgang,host.docker.internalDu kan få adgang til værtens tjeneste, ved at tjekke /etc/hosts-filen, vil du opdage, at der ikke er nogen domænenavnsomdirigering, og du kender ikke det specifikke underliggende princip for docker.
Både værten og containeren kan få adgang til værtens tjenester via host.docker.internal, men adressen, der returneres af ping-kommandoen, er forskellig, som følger:
|