ps komutu docker kapsayıcısında çalışmıyor


214

Debian resmi Docker hub deposundan türetilmiş bir docker kapsayıcısında ps komutu yapmak istiyorum:

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

Yanıtlar:


374

pstemel wheezygörüntüde yüklü değil . Bunu kabın içinden deneyin:

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

8
Bu hatayı alırsanız "/ bin / sh -c apt-get install procps 'komutu sıfırdan farklı bir kod döndürdü: 1" komutunu apt-get install -y procpskullanın.
fwc

İşte pshırıltılı görüntüye dahil değil 2014 yılında tartışılan URL :https://github.com/moby/moby/issues/447#issuecomment-36647268
truthadjustr

Apt-get güncelleme && apt-get install -y procps && rm -rf / var / lib / apt / Lists / *
Zhuo YING

Nereye eklenmeli? Docker görüntünüzü oluştururken .yml dosyasında düşünüyorum?
Yaro


11

Procps paketini yükleyemiyorsanız (uygun izinlere sahip değilseniz) / proc dizinini kullanabilirsiniz.

İlk birkaç dizin (sayı olarak adlandırılır) işlemlerinizin PID'leridir. Dizinler içinde, her bir PID'ye hangi işlemin bağlı olduğunu deşifre etmek için yararlı ek bilgiler bulabilirsiniz. Örneğin, "cmdline" dosyasını görüntülemek için hangi komutu PID'ye bağlı kontrol etmek için cat komutunu kullanabilirsiniz.

$ ls /proc
1 10 11 ...

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

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

Bu kadar uygun olmasa da, bu daha uygun bir cevap gibi görünüyor.
Jairus Martin

1

İlk olarak aşağıdaki komutu çalıştırın:

apt-get update && apt-get install procps

ve sonra çalıştırın:

ps -ef
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.