来自主机的特定容器的“ps”
`ps` of specific container from host
在主机中,有没有办法得到特定容器的ps
?
如果具有 cgroup foo 的容器具有进程 bar、baz、bam
然后像 ps --cgroup-id foo
应该像在容器(cgroup)中一样打印 ps
的结果,如下所示:
PID USER TIME COMMAND
1 root 0:00 bar
60 root 0:00 baz
206 root 0:00 bam
虽然不一定是ps
,但我希望它可以由一两个命令组成。
谢谢!
有一个docker top
命令,例如:
$ docker top 9f2
UID PID PPID C STIME TTY TIME CMD
root 20659 20621 0 Oct08 ? 00:00:00 nginx: master process nginx -g daemon off;
systemd+ 20825 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20826 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20827 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20828 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20829 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20830 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20831 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20832 20659 0 Oct08 ? 00:00:00 nginx: worker process
或者如果容器附带 ps
:
,您可以执行到容器中
docker exec $container_name ps
如果容器中未包含 ps
,您可以 运行 同一 pid 命名空间中的不同容器:
$ docker run --pid container:9f2 busybox ps -ef
PID USER TIME COMMAND
1 root 0:00 nginx: master process nginx -g daemon off;
23 101 0:00 nginx: worker process
24 101 0:00 nginx: worker process
25 101 0:00 nginx: worker process
26 101 0:00 nginx: worker process
27 101 0:00 nginx: worker process
28 101 0:00 nginx: worker process
29 101 0:00 nginx: worker process
30 101 0:00 nginx: worker process
31 root 0:00 ps -ef
在主机中,有没有办法得到特定容器的ps
?
如果具有 cgroup foo 的容器具有进程 bar、baz、bam
然后像 ps --cgroup-id foo
应该像在容器(cgroup)中一样打印 ps
的结果,如下所示:
PID USER TIME COMMAND
1 root 0:00 bar
60 root 0:00 baz
206 root 0:00 bam
虽然不一定是ps
,但我希望它可以由一两个命令组成。
谢谢!
有一个docker top
命令,例如:
$ docker top 9f2
UID PID PPID C STIME TTY TIME CMD
root 20659 20621 0 Oct08 ? 00:00:00 nginx: master process nginx -g daemon off;
systemd+ 20825 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20826 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20827 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20828 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20829 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20830 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20831 20659 0 Oct08 ? 00:00:00 nginx: worker process
systemd+ 20832 20659 0 Oct08 ? 00:00:00 nginx: worker process
或者如果容器附带 ps
:
docker exec $container_name ps
如果容器中未包含 ps
,您可以 运行 同一 pid 命名空间中的不同容器:
$ docker run --pid container:9f2 busybox ps -ef
PID USER TIME COMMAND
1 root 0:00 nginx: master process nginx -g daemon off;
23 101 0:00 nginx: worker process
24 101 0:00 nginx: worker process
25 101 0:00 nginx: worker process
26 101 0:00 nginx: worker process
27 101 0:00 nginx: worker process
28 101 0:00 nginx: worker process
29 101 0:00 nginx: worker process
30 101 0:00 nginx: worker process
31 root 0:00 ps -ef