Naja, auf meinen anderen Docker Host Systemen funktioniert es genau so. Nur die QNAP verhält sich hier anders.
Wenn ich ein Service im Docker auf Port 3307 nach außen laufen lasse, dann sollte ein weiterer Docker auf dem gleichen Host auch über die 192.168.188.2:3306 auf diesen Service zugreifen können und nicht auf dem Docker Netz 10.0.3.x. Das macht so ein Container ja Starr und ich kann ihn nicht ohne Anpassungen auf einem anderen Docker Host laufen lassen.
Beiträge von Ep-Naj
-
-
Korrekt, anpingen möchte ich die Host Ip auf 192.168.188.2 bzw QNAP als DNS und nicht die 10.0.3.1.
-
Hallo miteinander,
ich habe hier eine QNAP TS-253A
CodeServername QNAPModellbezeichnung TS-253ACPU Intel(R) Celeron(R) CPU N3160 @ 1.60GHzSeriennummer Q164I11566Gesamtspeicher 16 GB (15933.6 MB nutzbar)Dualkanal unterstützt NIC_VIEW_YESSpeichersteckplätze 2 (8 GB / 8 GB)Firmware-Version 4.2.1 Build 20160601Systembetriebszeit 0 Tag(e) 21 Stunde(n) 7 Minute(n)Zeitzone (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, ViennaDateinamencodierung Englisch
Diese QNAP soll in erster Linie als Docker Host fungieren. Die Container Station ist in der Version 1.5.1343 installiert.
Mein Problem ist folgendes:Jeglicher Docker-Container kann nicht mit der Host-IP kommunizieren. Das ist schlecht und macht für mich das System unbrauchbar.
Ich vermute das dies mit iptables zu tun hat, weiß aber nicht wie ich diese konfigurieren muss.
Anbei ein Paar Details zum Aufbau:Die route auf dem QNAP Host
Code[~] # routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Ifacedefault fritz.box 0.0.0.0 UG 0 0 0 eth010.0.3.0 * 255.255.255.0 U 0 0 0 lxcbr0127.0.0.0 * 255.0.0.0 U 0 0 0 lo192.168.188.0 * 255.255.255.0 U 0 0 0 eth0
Die installierten Docker Container
Code[~] # docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES16221b6dc9ae rancher/agent:v1.0.2 "/run.sh http://192.1" 2 minutes ago Up 2 minutes rancher-hostd952d64b270b rancher/server:latest "/usr/bin/s6-svscan /" 12 minutes ago Up 12 minutes 0.0.0.0:32769->3306/tcp, 0.0.0.0:32768->8080/tcp server-1
Verbunden auf die Bash des Docker-Containers.
Ausgeführte Befehle:- route
- ping auf google.de - OK
- nslookup auf google.de -OK
- nslookup auf QNAP - OK
- ping auf QNAP - FEHLER
- traceroute auf QNAP - FEHLER
- traceroute auf den Router - OK
- ping auf alle anderen Clients im 192.168.188.0/24 Netzwerk - OK
Code[~] # docker exec -it 162 bash root@16221b6dc9ae:/# routeKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Ifacedefault 10.0.3.1 0.0.0.0 UG 0 0 0 eth010.0.3.0 * 255.255.255.0 U 0 0 0 eth0root@16221b6dc9ae:/# ping www.google.dePING www.google.de (172.217.19.195) 56(84) bytes of data.64 bytes from fra02s21-in-f3.1e100.net (172.217.19.195): icmp_seq=1 ttl=54 time=34.8 ms64 bytes from fra02s21-in-f3.1e100.net (172.217.19.195): icmp_seq=2 ttl=54 time=34.3 ms64 bytes from fra02s21-in-f3.1e100.net (172.217.19.195): icmp_seq=3 ttl=54 time=33.1 ms64 bytes from fra02s21-in-f3.1e100.net (172.217.19.195): icmp_seq=4 ttl=54 time=44.9 ms^C--- www.google.de ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3003msrtt min/avg/max/mdev = 33.168/36.821/44.909/4.712 msroot@16221b6dc9ae:/# nslookup www.google.deServer: 192.168.188.1Address: 192.168.188.1#53Non-authoritative answer:Name: www.google.deAddress: 172.217.21.3root@16221b6dc9ae:/# nslookup QNAP Server: 192.168.188.1Address: 192.168.188.1#53Name: QNAPAddress: 192.168.188.2root@16221b6dc9ae:/# ping 192.168.188.2PING 192.168.188.2 (192.168.188.2) 56(84) bytes of data.^C--- 192.168.188.2 ping statistics ---12 packets transmitted, 0 received, 100% packet loss, time 11000msroot@16221b6dc9ae:/# traceroute 192.168.188.2traceroute to 192.168.188.2 (192.168.188.2), 30 hops max, 60 byte packets 1 * * * 2 * * *29 * * *30 * * *root@16221b6dc9ae:/# traceroute 192.168.188.1traceroute to 192.168.188.1 (192.168.188.1), 30 hops max, 60 byte packets 1 10.0.3.1 (10.0.3.1) 0.106 ms 0.036 ms 0.034 ms 2 fritz.box (192.168.188.1) 0.378 ms 0.457 ms 0.711 ms
Wo liegt hier der Fehler? Ich kann aus dem Docker Container alles im Netzwerk erreichen nur den docker-host nicht.
Aus der Ausgabe von iptables werde ich auch nicht schlau. Unter Systemsteuerung -> Sicherheit -> Sicherheitsstufe lasse ich alle Verbindungen zuCode[~] # iptables -L Chain INPUT (policy ACCEPT)target prot opt source destination Chain FORWARD (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination Chain DOCKER (0 references)target prot opt source destination
Code
Alles anzeigen[~] # iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 10.0.3.0/24 !10.0.3.0/24
Vielen Dank für eure Hilfe!