polecenie ps nie działa w kontenerze dokowanym

208

Chcę wykonać polecenie ps w kontenerze dokowanym pochodzącym z oficjalnego repozytorium hubu Docker:

$ docker run -ti debian:wheezy /bin/bash
root@51afd6b09af8:/# ps
bash: ps: command not found
Yves Nicolas
źródło

Odpowiedzi:

366

psnie jest zainstalowany w wheezyobrazie podstawowym . Spróbuj tego z poziomu kontenera:

RUN apt-get update && apt-get install -y procps
użytkownik2105103
źródło
8
Jeśli pojawi się błąd „Polecenie” / bin / sh -c apt-get install procps ”zwróciło niezerowy kod: 1”, należy użyć apt-get install -y procpszamiast tego.
fwc
Oto adres URL, który omawiano w 2014 r. pshttps://github.com/moby/moby/issues/447#issuecomment-36647268
Nieuwzględniania
URUCHOM apt-get update && apt-get install -y procps && rm -rf / var / lib / apt / list / *
Zhuo YING
Gdzie należy to dodać? Myślę, że w pliku .yml podczas tworzenia obrazu dokera?
Yaro
13

użyj góry dokera

docker top <container ID>
es kolonia
źródło
6

Jeśli nie możesz zainstalować pakietu procps (nie masz odpowiednich uprawnień), możesz użyć katalogu / proc.

Pierwsze kilka katalogów (zwanych liczbami) to PID Twoich procesów. Wewnątrz katalogów można znaleźć dodatkowe informacje przydatne do odszyfrowania, który proces jest podłączony do każdego PID. Na przykład możesz użyć polecenia cat, aby wyświetlić plik „cmdline” i sprawdzić, który proces jest podłączony do PID.

$ ls /proc
1 10 11 ...

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

$ cat /proc/22/cmdline 
/bin/sh
Vedran Vidovic
źródło
Chociaż nie jest to tak wygodne, wydaje się bardziej odpowiednią odpowiedzią.
Jairus Martin
1

Najpierw uruchom poniższe polecenie:

apt-get update && apt-get install procps

a następnie uruchom:

ps -ef
harun ugur
źródło