tadeus
Goto Top

Docker image - Welcher Port?

Hallo,

ich hab hier xubuntu15.10 auf welchem ich testweise rocketchat installieren möchte. Dies habe ich über ein Dockerimage installiert. (bisher damit noch nichts gemacht, aber es intressiert mich)

Laut docker ist es installiert und läuft:
sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
rocket.chat         latest              c4a91545c097        39 hours ago        737.7 MB
mongo               latest              e79b013480eb        9 days ago          309.8 MB
hello-world         latest              690ed74de00f        5 months ago        960 B

sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
e79b845c8a8e        rocket.chat         "node main.js"           37 minutes ago      Up 37 minutes       3000/tcp            rocketchat  
8cc525753091        mongo               "/entrypoint.sh --sma"   43 minutes ago      Up 42 minutes       27017/tcp           db  

"Wo" läuft denn jetzt rocketchat?
Mit netstat -tulpen gibts keine Anhaltspunkte dass am Port 3000 was laufen würde, wohin sich ein Client verbinden könnte.

Danke

Grüße

Content-Key: 299458

Url: https://administrator.de/contentid/299458

Ausgedruckt am: 28.03.2024 um 11:03 Uhr

Mitglied: 114757
114757 18.03.2016 aktualisiert um 10:14:35 Uhr
Goto Top
Moin,
(bisher damit noch nichts gemacht, aber es intressiert mich
"Wo" läuft denn jetzt rocketchat?
Dann sollte dich folgende Lektüre zum Ziel führen:
https://docs.docker.com/engine/userguide/networking/dockernetworks/

Gruß jodel32
Mitglied: Frank
Frank 29.08.2016 aktualisiert um 14:29:36 Uhr
Goto Top
Hi,

generell kannst du Docker mit dem eigenen internen Netzwerk laufen lassen (per NAT, default) oder deine Anwendung an dein bestehendes Host Netzwerk binden (docker run --net=host ..). Vorteil bei der NAT-Variante ist die Sicherheit, Nachteil ist die fehlende Geschwindigkeit. Bei --net=host hast du den Vorteil der Geschwindigkeit, aber den Nachteil, dass der Docker Container dann auch Zugriff auf dein Netzwerk hast.

Startet du eine Anwendung per "--net=host" kannst du auf die Anwendung per Localhost und dem entsprechenden Port zugreifen. Beim Default NAT Netzwerk bekommt die Anwendung eine eigene interne IP und du musst den Port per "docker run --p xx:xx .." auf deinen lokalen Port weiterleiten.

NAT Beispiel "redis" Docker Image:
/usr/bin/docker run -p 6379:6379 -it --rm redis:alpine 

HOST Beispiel "redis" Docker Image:
/usr/bin/docker run --net=host -it --rm redis:alpine 

Danach kannst du bei beiden Varianten auf "127.0.0.1" und Port 6379 der Redis DB zugreifen.


Ergänzend sei auch noch der INSPECT Befehl von docker: Er liefert dir alle wichtigen Angaben wie IP-Adresse, Port, Mountpoints, Image, Datadir, Logfile etc.

Beispiel für die IP-Adresse:
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name  

In deinem Fall dann:
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' rocketchat  

oder einfach nur:
$ docker inspect rocketchat

Dann bekommst du alle Informationen zu rocketchat.

Siehe dazu auch:
https://docs.docker.com/engine/reference/commandline/inspect/

Gruß
Frank