O comando ps não funciona no contêiner do docker

208

Quero executar um comando ps em um contêiner do docker derivado do repositório oficial do Debian Docker hub:

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

Respostas:

366

psnão está instalado na wheezyimagem base . Tente isso de dentro do contêiner:

RUN apt-get update && apt-get install -y procps
user2105103
fonte
8
Se você receber esse erro "O comando '/ bin / sh -c apt-get install procps' retornou um código diferente de zero: 1" e use-o apt-get install -y procps.
FWC
Aqui está o URL discutido em 2014 para não incluir psna imagem https://github.com/moby/moby/issues/447#issuecomment-36647268
wheezy
Execute o apt-get update && apt-get install -y procps && rm -rf / var / lib / apt / lists / *
Zhuo YING
Onde deve ser adicionado? Penso no arquivo .yml ao criar sua imagem do docker?
Yaro
13

use docker top

docker top <container ID>
es colônia
fonte
6

Caso não consiga instalar o pacote procps (não possui permissões adequadas), você pode usar o diretório / proc.

Os primeiros diretórios (nomeados como números) são PIDs dos seus processos. Nos diretórios internos, você pode encontrar informações adicionais úteis para decifrar qual processo está conectado a cada PID. Por exemplo, você pode usar o comando cat para visualizar o arquivo "cmdline" e verificar qual processo está conectado ao 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
fonte
Embora não seja tão conveniente, esta parece a resposta mais apropriada.
Jairo Martin
1

Primeiramente, execute o comando abaixo:

apt-get update && apt-get install procps

e então execute:

ps -ef
harun ugur
fonte