Docker konteinera noklusējuma tīkls ir tilta formā (tajā pašā LAN kā resursdators, bet izmantojot atsevišķu LAN IP), kad programma darbojas ražošanas vidē, jums ir jākonfigurē tikai atbilstošā pakalpojuma adrese, lai izveidotu savienojumu ar datu bāzi, redis utt.
Izstrādes vidē, ja pakalpojums darbojas Docker un datu bāze darbojas lokāli, 127.0.0.1 konfigurēšana nav viegli lietojama.
To var atrisināt divos veidos.
1. risinājums:
Apstrādājiet resursdatoru un konteineru kā divas atsevišķas mašīnas un, konfigurējot adresi, konfigurējiet resursdatora LAN IP vai publisko IP.
2. risinājums:
Rakstiet resursdatora adresi tieši kā: host.docker.internal, lai ganOtrajai metodei ir nepieciešama doka versija, kas lielāka par 18.03, un tai jābūt pieejamai operētājsistēmās Windows un Mac。
Lai pārbaudītu, vai šīs divas metodes var piekļūt resursdatoram, varat tieši palaist attēlu ar docker, lai pingētu komandrindu:
Kā redzat no iepriekš redzamā attēla, piekļuve konteineriemhost.docker.internalJūs varat piekļūt resursdatora pakalpojumam, pārbaudot failu /etc/hosts, jūs atradīsiet, ka nav domēna vārda novirzīšanas, un jūs nezināt konkrēto dokera pamatprincipu.
Gan resursdators, gan konteiners var piekļūt resursdatora pakalpojumiem, izmantojot host.docker.internal, bet ping komandas atgrieztā adrese ir atšķirīga šādi:
|