[megoldva] Docker, postgresql szerver elérése

 ( szz | 2018. július 3., kedd - 11:34 )

A virtuális gépeken belül nem tudom 127.0.0.1-gyel vagy localhost-tal elérni a postgresql szervert, csak 172.20.0.3 -mal. Hogy lehetne ezen segíteni? (Tehát hogy 127.0.0.1-el is látsszon.)

Ilyen a docker-compose.yml fájlom: https://pastebin.com/j9baN9Us

Szerk: végül is nem okoz gondot.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Szerintem sehogy.
--
Gábriel Ákos

Köszi

A service nevét kell megadni, úgy, mintha localhost lenne, tehát ebben az esetben bármelyik service-ből:

db:5432

szerk.: most olvastam el a kérdés végét... :)

Esetleg egy Dockerfile-ban a /etc/hosts végére odabiggyeszteni a saját IP localhost párost?

Ez akkor se localhost.
Nem lehet localhost másik gépről, pontosan a konténer szintű szeparáció miatt.
Ugyanaz a kernel (linuxon) de másik cgroup.

--
Gábriel Ákos

Oké, akkor ez így nem járható út.

masik namespace, de egyetertunk

de amugy sem ertem, hogy mi a helyzet. Van egy VM, amiben a fenti docker containerek futnak? Es a php-sbol "localhost"-al szeretne elerni a db-t?

Mert ez olyan, mintha ket fizikai gepen szeretne az egyik szervizt localhosttal elerni.

Amugy ha sajat networkot definial (nem a default-ot), akkor kozos lesz a namespace es latjak egymast a containerek nevvel, de akkor sem lehet localhosttal elerni egyik "gepet" a masikrol!

Ha ez kell, akkor legyen egyetlen kontainer amiben minden szolgaltatas benne van mondjuk supervisord-vel inditva.

Szerintem inkább az volt a cél, hogy ne hardcode-olt IP-vel kelljen elérni a DB-t, ami ugye egy-egy restart után változhat. Ezért írtam kapásból a db:...-t, mert mintha valójában ezt a megoldást kereste volna OP a localhost-os workarounddal.

Ja ertettem es igazat is adtam neked. Csak ertetlenul alltam en is az egesz localhost-os ize elott. :D
Nem birtam megallni, hogy ne irjam le :D

Igen, jól látod, ez volt a cél. Köszi a meggondolásokat mindenkinek!

Mondjuk ha kubernetes-ben inditod egy podban oket, akkor azok mind tudnak ugy kommunikalni, hogy "localhost" mert azonos lesz a network namespace a pod-on beluli osszes containernek.

De ez mar messze vezetne. :D

Ó, ez meggondolandó! Köszi!! :-)

Ez lett a megoldás, tényleg. (Egyszerűen IP cím helyett db.)