Sziasztok. Van egy jelenség, amit nem tudok megfejteni.
Docker-ben indított tomcat-eket nem tudom elérni, ha a localhost-on próbálkozok, kizárólag csak ha a publikus IP-címmével akarom elérni:
docker run -id --rm --name proba -p 8080:8080 tomcat
Ezek után ugyanezen a gépen:
- links http://192.168.1.44:8080 OK
- links http://dker.mydomain:8080 OK
- links http://127.0.0.1:8080 timeout
- links http://localhost:8080 timeout
Más gépekről minden rendben:
- links http://192.168.1.44:8080 OK
- links http://dker.mydomain:8080 OK
Ugyanezen a docker-host gépen más docker containerekkel (nginx, sinatra, stb.) nincs gond, azokat elérem localhoston, illetve 127.0.0.1-en is, csak a tomcat-tel van gondom, annak viszont minden változatával, amit kipróbáltam. (tomcat:latest, tomcat:8.0, tomcat:8.0-alpine)
A docker-proxy elvileg minden létező IP-n figyel:
:~# netstat -tnlp| grep 8080
tcp6 0 0 :::8080 :::* LISTEN 107909/docker-proxy
Debian Jessie és Stretch alatt próbálkozom, a docker verzió 17.09
Ha bárkinek bármi ötlete van, ne habozzon megosztani :)
- 1715 megtekintés
Hozzászólások
feloldja az url-t és az image-en belüli localhost-nak akar válaszolni ahol meg ha jól tippelek nem figyel a tomcat
- A hozzászóláshoz be kell jelentkezni
Bent, a konténeren belül hallgat a localhost-ra is:
root@e553abbcaab8:/usr/local/tomcat# ip addr show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
259: eth0: mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:12:00:02 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.2/16 scope global eth0
valid_lft forever preferred_lft forever
root@e553abbcaab8:/usr/local/tomcat# curl -I http://127.0.0.1:8080
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 09 Oct 2017 19:18:36 GMT
root@e553abbcaab8:/usr/local/tomcat# curl -I http://172.18.0.2:8080
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 09 Oct 2017 19:18:39 GMT
- A hozzászóláshoz be kell jelentkezni
:D
ezt nagyon egyszerre vettük észre. Ez esetben passz.
- A hozzászóláshoz be kell jelentkezni
hmmm. Nem volt jó a tippem, mindenhol hallgatózik és image-en belül műk is a localhost.
- A hozzászóláshoz be kell jelentkezni
A Docker proxy kimenetből semmire nem szabad következtetni: IPv6 feletti TCP-ről van szó (tcp6), de te IPv4-ezni akarsz valószínűleg.
Lásd itt:
https://github.com/moby/moby/issues/2174
https://github.com/moby/moby/issues/32117
- A hozzászóláshoz be kell jelentkezni
Csak egy ötlet: Mi a helyzet ha a konténeren belül nem figyel localhost-on?
A host gép localhostja ugye nem azonos a konténer localhostjával és ha a tomcat a konténeren belüli localhost-ra válaszol valamiért,akkor ugye a válasz nem kerül ki a konténerből.
- A hozzászóláshoz be kell jelentkezni