我想在来自Debian官方docker中心存储库的docker容器中执行ps命令:
$ docker run -ti debian:wheezy /bin/bash
root@51afd6b09af8:/# ps
bash: ps: command not found
我想在来自Debian官方docker中心存储库的docker容器中执行ps命令:
$ docker run -ti debian:wheezy /bin/bash
root@51afd6b09af8:/# ps
bash: ps: command not found
Ps没有安装在基本喘息映像中。在容器内尝试以下操作:
apt-get update && apt-get install procps
或者在Dockerfile中添加以下行:
RUN apt-get update && apt-get install -y procps && rm -rf /var/lib/apt/lists/*
如果你不能安装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
编辑- cmdline中的空格丢失,因此我们可以将cat输出管道到tr命令,例如:
$ cat /proc/1/cmdline | tr '\0' ' '
/sbin/init splash
如果你正在运行CentOS容器,你可以使用以下命令安装ps:
yum install -y procps
在Dockerfile上运行此命令:
RUN yum install -y procps