docker container nicht aus dem internet erreichbar

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
pcace
Beiträge: 248
Registriert: 28.08.2011 01:08:55

docker container nicht aus dem internet erreichbar

Beitrag von pcace » 14.03.2025 18:22:59

Hi,

ich komme hier grad nicht weiter -

ich habe einen docker container den ich so starte:

Code: Alles auswählen

docker run -d     --name valheim-server     --cap-add=sys_nice     --stop-timeout 120    -p 2456:2456/udp -p 2457:2457/udp -p 2458:2458/udp    -v /home/gameserver/valheim-server/config:/config     -v /home/gameserver/valheim-server/data:/opt/valheim     -e SERVER_NAME="bla"     -e WORLD_NAME="NewWorld"     -e SERVER_PASS="secretPassword"  ghcr.io/lloesche/valheim-server
mit ufw habe ich 2456 und 2457 udp freigegeben:

Code: Alles auswählen

Status: active

To                         Action      From
--                         ------      ----            
2456:2457/udp              ALLOW       Anywhere                  
2456:2457/udp (v6)         ALLOW       Anywhere (v6)             

aaaaaber erreichen kann ich den server trotzdem nicht. er läuft definitiv, weil ich in den logs vom container sehe, dass alles schick ist und der server auf anfragen wartet.

was mach ich falsch? irgendiwe habe ich das gefühl, dass der port garnicht erst im host system verfügbar ist, also es nicht an der Firewall liegt.

wie kann ich das testen? oder übersehe ich was richtig dummes?

Gruß und Dank!

Benutzeravatar
heisenberg
Beiträge: 4236
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: docker container nicht aus dem internet erreichbar

Beitrag von heisenberg » 14.03.2025 19:35:54

Ich muss sagen, ich nutze selbst statt docker run eigentlich nur noch docker-compose, weil das einfacher in der Handhabung ist. Deswegen bin ich mit dem docker run Befehl nicht so firm. Aber der Befehl scheint mir schon zu passen.

Hier ist er mal etwas übersichtlicher:

Code: Alles auswählen

docker run -d     			\
	--name valheim-server     	\
	--cap-add=sys_nice     		\
	--stop-timeout 120    		\
	-p 2456:2456/udp 		\
	-p 2457:2457/udp 		\
	-p 2458:2458/udp    		\
	-v /home/gameserver/valheim-server/config:/config     	\
	-v /home/gameserver/valheim-server/data:/opt/valheim  	\
	-e SERVER_NAME="bla"     				\
	-e WORLD_NAME="NewWorld"     				\
	-e SERVER_PASS="secretPassword"  			\
	ghcr.io/lloesche/valheim-server
Um den laufenden Container tatsächlich nochmal anzuschauen, nimm mal "docker ps". Sieht dann so aus:

Code: Alles auswählen

# docker ps
CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS          PORTS                                 NAMES
82091ea7e59e   xwiki:stable-mysql-tomcat   "docker-entrypoint.s…"   21 seconds ago   Up 20 seconds   127.0.0.1:8094->8080/tcp              xwikistable
6b2de49f85b6   mysql:5.7                   "docker-entrypoint.s…"   8 weeks ago      Up 8 weeks      33060/tcp, 127.0.0.1:7707->3306/tcp   xwikistable-mysql
75d95dd49c64   wiki_mysqlbackup            "/usr/local/bin/mysq…"   8 weeks ago      Up 8 weeks  
Hier sieht man, dass Port 8094/tcp auf 8080/tcp weitergeleitet ist, und auch 7707/tcp auf 3306/tcp. Zusätzlich sieht man noch dass der mysql-Container den Port 33060/tcp angeboten wird vom xwiki-stable-ymsql Container. Der wird aber nicht nach außen geführt.

Ansonsten sieht man in dem Beispiel oben, dass ich die auch nur an 127.0.0.1 binde, also nur intern im Server erreichbar, was ich dann wiederrum vom lokalen Webserver aus anspreche.

D. h. Du kannst jetzt erst mal mit docker ps prüfen, ob die Ports tatsächlich aktiv bei Dir konfiguriert sind - wahrscheinlich ja.

Insofern würde ich vermuten, dass das ein Firewallproblem ist.

Und grundsätzlich müssen die Docker-Ports in der Kette FORWARD und nicht in INPUT freigegeben werden, weil Dockercontainer via IP als Netzwerkgerät angesprochen werden. (Mit ufw kenne ich mich leider auch überhaupt nicht aus)

Ein kurzer Test, wenn Du die ufw abschaltest und dann probierst ob es dann geht oder nicht, sollte Klarheit bringen, ob Firewallregeln das Problem sind.

pcace
Beiträge: 248
Registriert: 28.08.2011 01:08:55

Re: docker container nicht aus dem internet erreichbar

Beitrag von pcace » 15.03.2025 09:24:44

Hi,

ich bin mal deiner Empfehlung gefolgt und hab das mit docker compose gemacht. Und tataa quasi der gleiche proezess ist nun verfügbar von außen.
irgendwie habe ich immer mal wieder mit docker und ports probleme... so wie hier vor ein paar wochen wo das problem genau andersherum war: viewtopic.php?p=1383289#p1383289

Gruß und Dank nochmal - wie gesagt, mit docker compose verhält sich das alles wie erwartet.

Benutzeravatar
heisenberg
Beiträge: 4236
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: docker container nicht aus dem internet erreichbar

Beitrag von heisenberg » 15.03.2025 12:47:02

pcace hat geschrieben: ↑ zum Beitrag ↑
15.03.2025 09:24:44
ich bin mal deiner Empfehlung gefolgt und hab das mit docker compose gemacht. Und tataa quasi der gleiche proezess ist nun verfügbar von außen.
Ok. Das wundert mich jetzt wirklich. Eigentlich ist docker-compose nur eine andere Darstellung des Gleichen. D. h. wenn Du da alle Optionen 1:1 übernommen hast, müsste der Container auf die exakt gleiche Weise ausgeführt werden. Aber schön wenn's funktioniert!

Eine Anmerkung noch dazu:

Code: Alles auswählen

	-v /home/gameserver/valheim-server/config:/config     	\
	-v /home/gameserver/valheim-server/data:/opt/valheim  	\
Um das portabler zu halten, würde ich keine absoluten sondern relative Pfade konfigurieren, und zwar so:

Code: Alles auswählen

	-v ./config:/config     	\
	-v ./data:/opt/valheim  	\
In /home/gameserver/valheim-server liegt dann deine docker-compose.yml. Und von dort aus im Untervzeichnis config oder data werden die Ordner eingebunden. Vorteil ist dann der, dass, wenn Du den Ordner mit den Daten irgendwo hin kopierst, dann läuft das ohne Änderung, während Du bei der ursprünglichen Variante den Pfad anpassen musst.

Antworten