A docker konténer alapértelmezett hálózata híd formájában működik (ugyanabban a LAN-ben, mint a host, de külön LAN IP-t használ), amikor a program a gyártási környezetben fut, csak a megfelelő szolgáltatási címet kell konfigurálni, hogy csatlakozzon az adatbázishoz, a redishez stb.
Fejlesztő környezetben, ha a szolgáltatás dockerben fut, az adatbázis pedig helyben, a 127.0.0.1 konfigurálása nem könnyű használni.
Ez kétféleképpen oldható meg.
1. megoldás:
Kezeljük a hostgépet és a konténert két különálló gépként, és konfiguráljuk a host LAN IP-jét vagy nyilvános IP-jét a cím beállításakor.
2. megoldás:
A hoszt címet közvetlenül így írjuk meg: host.docker.internalA második módszer a docker verziót igényel 18.03-nál magasabb, és elérhetőnek kell lennie Windowson és Mac-en。
Annak teszteléséhez, hogy ez a két módszer hozzáfér-e a hoszthoz, közvetlenül futtathatsz egy képet dockerrel, hogy pingeljesse a parancssort:
Ahogy a fenti képen is látható, a konténerhozzáféréshost.docker.internalHozzáférhetsz a host szolgáltatásához, ha megnézed az /etc/hosts fájlt, azt találod, hogy nincs domain név átirányítás, és nem ismered a docker konkrét alapelvét.
Mind a host, mind a konténer hozzáférhet a host.docker.internal oldalon keresztül, de a ping parancs által visszaadott cím eltérő, a következők szerint:
|