Sziasztok!
Sajnos pontos részleteket nem oszthatok meg, ezért csak átalános iránymutatást kérnék.
Van egy két konténerből álló docker-compose fájlom. Az egyik konténernek el kéne érni a host gépen futó Tomcat-et ezért fel van véve az
extra_hosts:
- "host.docker.internal:host-gateway"
Nálam Linux alatt faszán fut. Docker Desktop alatt Windowson WSL-lel faszán fut.
Portainerrel (https://www.portainer.io/) natív WSL-es dockerrel nem megy. Olyan mintha a WSL-ben futó linuxot látná a konténerből, de a Win-en futó Tomcatet már nem. Tuti valami hálózati beállítás van elcseszve de én Win-en, pláne WSL-lel nem mozgok otthonosan.
Köszi a segítséget!
- 521 megtekintés
Hozzászólások
Bocs, félreolvastam.
A Portainer csak egy container management tool. Mi a pontos probléma?
Az a gondod, hogy docker compose-zal deployolva a stack jól működik, míg ha Portainerrel deployolod, úgy nem megy?
A Portainer felületén látod a hozzáadott extra_host bejegyzést a konténer adatainál?
- A hozzászóláshoz be kell jelentkezni
Igen, szerintem sincs effektív a Portainer-hez köze, de nem tudom hogy telepítették a cuccot, ezért írtam le, hogy van.
Igen, látom, csak valami miatt csak a WSL-ig megy a hálózat. A Windows hostra nem lát ki, ott már timeout van, pedig ahogy néztem a windows meg a WSL linux alatt a hálózati interfészek ugyanazok. Arra gondoltam, hogy talán valami Windows firewall megfoghatja, de a kolléga szerint nem állított be ilyet. Mondjuk központilag telepített a cucc, lehet van valami elcseszett policy ami ezt okozza.
- A hozzászóláshoz be kell jelentkezni
TL;DR: Nulladik körben, ideiglenesen tiltsátok le a tűzfalat, ha hirtelen elkezd működni minden, akkor az volt a gond.
Bővebben: Ha a kollega nem állított ilyet, akkor igen, megfoghatja, ha a WSL-es hálózatot valamiért idegen testként ismeri fel. Ki kell publikálni a Tomcatet a windows tűzfalon (átmenetileg a publikus hálózat felé is. utána lehet finomítani). A Windows tűzfal ugyanis INPUT ágon alapból blokkol mindent, kivéve ami expliciten be van engedve.
És ugye azt tudjuk, hogy ami a dockeres hálózatból jön ki forgalom, az egy yet another hálózatból fog jönni, nem a gép IP-jérúl, még csak nem is a gép hálózatából? Hiába ugyanazok az interfészek, a docker fel fog húzni egy saját hálózatot, a kontíner onnan kap IP-t (mert a kontíner ilyen szempontból önálló, külön gépnek számít), és azzal fogja támadni a hostot. Ha ezt a hálózatot a Windows tűzfal nem ismeri el, mint belső háló, akkor nem fogja beengedni róla a forgalmat.
- A hozzászóláshoz be kell jelentkezni
Sajna központilag menedzselt gépről van szó, nincs joga erre, de futunk egy kört, hátha admin felügyelet mellett meg tudják csinálni.
- A hozzászóláshoz be kell jelentkezni
Csak közvetlenül a WSL-ből, mindenféle konténer nélkül elérhető a Windows-on futó Tomcat?
Tippre amúgy tűzfal beállítás lesz a Windows-on.
a windows meg a WSL linux alatt a hálózati interfészek ugyanazok
Itt már feltételezem volt valami játszadozás a hálózati beállításokkal? Be lett állítva a networkingMode=mirrored a .wslconfig file-ban? Ez amúgy nem baj, akár ezzel együtt vagy enélkül is működhet.
- A hozzászóláshoz be kell jelentkezni
C:\users\TesztElek\.wslconfig -ban networkingMode=mirrored be van állítva?
- A hozzászóláshoz be kell jelentkezni
[wsl2]
networkingMode=mirrored
Igen.
- A hozzászóláshoz be kell jelentkezni
Esetleg hozzá a releváns hyper-v tűzfal szabály(ok) amit itt írnak:0
https://learn.microsoft.com/en-us/windows/wsl/networking#mirrored-mode-…
https://learn.microsoft.com/en-us/windows/security/operating-system-sec…
- A hozzászóláshoz be kell jelentkezni
Csak közvetlenül a WSL-ből, mindenféle konténer nélkül elérhető a Windows-on futó Tomcat?
Ezt próbáltátok? Ez lenne a hibakeresésben a legelső lépések egyike.
- A hozzászóláshoz be kell jelentkezni