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

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

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


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.