Ich versuche, ein Docker Bild von innen Google Cloud Shell (dh auf Höflichkeit Google Compute Engine-Instanz) zu laufen, wie folgt:Docker Lauf kann nicht Portbereich trotz netstat veröffentlichen zeigt an, dass die Ports verfügbar sind
docker run -d -p 20000-30000:10000-20000 -it <image-id> bash -c bash
Zurück sieht
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:8998 0.0.0.0:* LISTEN 249/python
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:13080 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:13081 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:34490 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:13082 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:13083 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:13084 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:34490 127.0.0.1:48161 ESTABLISHED -
tcp 0 252 172.17.0.2:22 173.194.92.34:49424 ESTABLISHED -
tcp 0 0 127.0.0.1:48161 127.0.0.1:34490 ESTABLISHED 15784/python
tcp6 0 0 :::22 :::* LISTEN -
so ist es mir, als ob alle Ports zwischen 20000 und 30000 sind vorhanden, aber der Lauf mit der folgenden Fehlermeldung wird jedoch beendet: zu diesem Schritt wird die folgende netstat -tuapn
berichtet
Fehlerreaktion von Daemon: Kann nicht Container starten: Proxy Starten des Userland-Proxy-Timed out
hier
Was ist los: Endpunkt auf Netzwerkbrücke erstellen gescheitert? Wie kann ich mehr Diagnoseinformationen erhalten und letztendlich das Problem lösen (z. B. dass mein Docker-Image mit dem gesamten verfügbaren Port-Bereich ausgeführt wird).
+1 Thx für die Erklärung. Ich sollte in der Lage sein, meine Anforderungen neu zu gestalten, um den Portbereich klein (er) zu halten. Aber das scheint unabhängig von dem Problem zu sein, wo Docker sich über einen Port im Bereich 10000-20000 zu beschweren scheint, während "netstat" das nicht glaubt. Wie kann ich sicher sein, dass dies auch bei einer kleineren Port-Bandbreite nicht passieren wird? – Drux
Ich habe jetzt meine Anforderungen (und Dockerfile) umgestaltet, um eine Reihe von 10 Ports anstelle von 10000 zu verwenden (was für jetzt tun sollte), und das Problem ist "magisch" verschwunden: 'docker run' produziert keine Fehler mehr. – Drux
"Zeitgesteuerter Proxy, der den Userland-Proxy startet" sieht nicht wie eine Beschwerde aus, dass ein Port genommen wird, sondern es sagt, es hat zu lange gedauert, einen "Docker-Proxy" -Prozess zu starten. Es könnte zu lange dauern, da 9.999 andere Prozesse gleichzeitig starten oder ein Nebeneffekt sein könnten, dass keine Dateideskriptoren oder andere Ressourcen mehr vorhanden sind. – BMitch