Der Befehl ps funktioniert im Docker-Container nicht


208

Ich möchte einen ps-Befehl in einem Docker-Container ausführen, der vom offiziellen Docker-Hub-Repository von Debian abgeleitet ist:

$ docker run -ti debian:wheezy /bin/bash
root@51afd6b09af8:/# ps
bash: ps: command not found

Antworten:


365

psist nicht im Basis- wheezyImage installiert . Versuchen Sie dies aus dem Container heraus:

RUN apt-get update && apt-get install -y procps

8
Wenn Sie die Fehlermeldung "Der Befehl '/ bin / sh -c apt-get install procps' hat einen Code ungleich Null zurückgegeben: 1" erhalten, verwenden Sie apt-get install -y procpsstattdessen.
fwc

Hier ist die URL, die im Jahr 2014 diskutiert wurde, nicht psin pfeifendes Bild aufzunehmen:https://github.com/moby/moby/issues/447#issuecomment-36647268
Truthadjustr

RUN apt-get update && apt-get install -y procps && rm -rf / var / lib / apt / lists / *
Zhuo YING

Wo soll es hinzugefügt werden? Ich denke in .yml-Datei beim Erstellen Ihres Docker-Image?
Yaro


5

Falls Sie das procps-Paket nicht installieren können (keine ordnungsgemäßen Berechtigungen haben), können Sie das Verzeichnis / proc verwenden.

Die ersten Verzeichnisse (als Zahlen bezeichnet) sind PIDs Ihrer Prozesse. In Verzeichnissen finden Sie zusätzliche Informationen, mit denen Sie erkennen können, welcher Prozess mit jeder PID verbunden ist. Mit dem Befehl cat können Sie beispielsweise die Datei "cmdline" anzeigen, um zu überprüfen, welcher Prozess mit der PID verbunden ist.

$ ls /proc
1 10 11 ...

$ ls -1 /proc/22
attr
autogroup
auxv
cgroup
clear_refs
cmdline
...

$ cat /proc/22/cmdline 
/bin/sh

Dies ist zwar nicht so bequem, scheint aber die angemessenere Antwort zu sein.
Jairus Martin

1

Führen Sie zunächst den folgenden Befehl aus:

apt-get update && apt-get install procps

und dann ausführen:

ps -ef
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.