도커 컨테이너에서 ps 명령이 작동하지 않습니다


208

데비안 공식 Docker 허브 저장소에서 파생 된 도커 컨테이너에서 ps 명령을 수행하고 싶습니다.

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

답변:


366

ps기본 wheezy이미지에 설치되어 있지 않습니다 . 컨테이너 내에서 시도하십시오.

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

8
" '/ bin / sh -c apt-get install procps'명령이 0이 아닌 코드를 반환했습니다 : 1"오류가 발생하면 apt-get install -y procps대신 사용하십시오.
fwc

다음은 pshttps://github.com/moby/moby/issues/447#issuecomment-36647268
희미한

apt-get 업데이트 실행 및 apt-get 설치 -y procps && rm -rf / var / lib / apt / lists / *
Zhuo YING

어디에 추가해야합니까? 도커 이미지를 만들 때 .yml 파일로 생각합니까?
야로


6

procps 패키지를 설치할 수없는 경우 (적절한 권한이없는 경우) / proc 디렉토리를 사용할 수 있습니다.

처음 몇 개의 디렉토리 (숫자)는 프로세스의 PID입니다. 디렉토리 내부에서 각 PID에 연결된 프로세스를 해독하는 데 유용한 추가 정보를 찾을 수 있습니다. 예를 들어 cat 명령을 사용하여 "cmdline"파일을보고 PID에 연결된 프로세스를 확인할 수 있습니다.

$ ls /proc
1 10 11 ...

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

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

편리하지는 않지만 더 적절한 답변 인 것 같습니다.
Jairus Martin

1

먼저 아래 명령을 실행하십시오.

apt-get update && apt-get install procps

그런 다음 다음을 실행하십시오.

ps -ef
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.