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

Odpowiedzi:


366

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

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

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


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.