Wenn Sie Docker verwenden, werden ESTABLISHED-Verbindungen nicht in Netstat angezeigt

8

Ich habe einen Andock-Container auf RHEL 7 mit Docker 1.7.0. Das Programm, das in diesem Container ausgeführt wird, wartet auf TCP-Verbindungen auf Port 5000. In meiner Dockerfile setze ich den Satz EXPOSE 5000 und ich führe den Container mit dem folgenden Befehl aus:

%Vor%

Wenn ich netstat auf dem Host ausführe, sehe ich den LISTEN-Socket:

%Vor%

Ich kann eine Verbindung zur Anwendung herstellen, indem ich mich mit der Host-IP-Adresse an Port 5000 verbinde und die Daten, die ich an die Anwendung sende, eintreffen. Ich weiß das, weil ich es in meinen Anwendungsprotokollen sehe, die Anwendung sendet auch Daten über den Socket. Ich sehe jedoch keine ESTABLISHED-Verbindungen mit netstat auf dem Docker-Host:

%Vor%

Ich sehe die ESTABLISHED-Verbindung auf der Clientseite, die docker nicht verwendet:

%Vor%

Ich habe keinen docker-Befehl gefunden, der äquivalent oder ähnlich wie netstat ist Ist das normal? Wie kann ich die ESTABLISHED-Verbindungen zu einem Container oder zum Docker-Proxy sehen?

Danke

    
user1272178 11.05.2016, 19:42
quelle

2 Antworten

9

Sie können entweder:

%Vor%

oder wenn Sie in Ihrem Docker-Image keinen netstat haben:

%Vor%

nsenter ist Teil des util-linux-Pakets. (Plagiierte @Larsche)

    
AdvilUser 01.11.2016, 03:46
quelle
0

Sie können dieses Snippet verwenden, um alle ESTABLISHED für alle Docker in einer Zeile zu erhalten (wenn Sie nsenter haben)

%Vor%

Beachten Sie die ESTABLISHED in grep .

Sie können mit netstat -pnl sowohl TCP als auch UDP

in die Abhörverbindung wechseln %Vor%

oder nur TCP LISTEN

%Vor%     
thibault ketterer 15.03.2018 09:44
quelle

Tags und Links