Reputation: 7891
I want to do a ps command in a docker container derived from Debian official Docker hub repository:
$ docker run -ti debian:wheezy /bin/bash
root@51afd6b09af8:/# ps
bash: ps: command not found
Upvotes: 637
Views: 587628
Reputation: 117
For RockyLinux 9, you need to use this command
$> yum install procps-ng
Upvotes: 0
Reputation: 1225
Kali users fix for bash: ps: command not found issue is:
apt install procps
Upvotes: 8
Reputation: 13095
ps
is not installed in the base wheezy
image. Try this from within the container:
apt-get update && apt-get install procps
or add the following line to the Dockerfile
:
RUN apt-get update && apt-get install -y procps && rm -rf /var/lib/apt/lists/*
Upvotes: 1058
Reputation: 1379
In case you can't install the procps package (don't have proper permissions) you can use /proc directory.
The first few directories (named as numbers) are PIDs of your processes. Inside directories, you can find additional information useful to decipher which process is connected to each PID. For example, you can use the cat command to view "cmdline" file to check which process is connected to PID.
$ ls /proc
1 10 11 ...
$ ls -1 /proc/22
attr
autogroup
auxv
cgroup
clear_refs
cmdline
...
$ cat /proc/22/cmdline
/bin/sh
Edited - spaces are lost in the cmdline so we can pipe the cat output to the tr
command, for example:
$ cat /proc/1/cmdline | tr '\0' ' '
/sbin/init splash
Upvotes: 118
Reputation: 411
If you're running a CentOS container, you can install ps using this command:
yum install -y procps
Running this command on Dockerfile:
RUN yum install -y procps
Upvotes: 25
Reputation: 1852
Firstly, run the command below:
apt-get update && apt-get install procps
and then run:
ps -ef
Upvotes: 20