在 Linux 上,每个 Docker 容器内的进程都有一个对应的宿主机上的 PID。要查看 Docker 容器中的进程在宿主机上的 PID,可以使用以下几种方法:
方法 1: 使用 docker top
命令
docker top
可以显示容器内的进程信息。
docker top <container_name_or_id>
这个命令会列出容器内的进程以及它们的 PID,注意这些 PID 是容器内的进程号。
方法 2: 使用 docker inspect
命令
如果你想查看宿主机上的 PID,可以通过 docker inspect
来获取容器的详细信息。
docker inspect --format '{{.State.Pid}}' <container_name_or_id>
这个命令返回的是容器主进程在宿主机上的 PID。
方法 3: 直接从 /proc
文件系统查看
知道了容器的宿主机 PID 后,你可以进一步查看容器进程的详细信息。
ls -l /proc/<host_pid>
比如你可以通过查看 /proc/<host_pid>/fd
来查看该进程打开的文件描述符,或者 /proc/<host_pid>/status
来查看进程状态。
方法 4: 结合 ps
和 grep
你也可以通过宿主机上的 ps
命令结合 grep
来查找 Docker 容器进程的 PID。
ps aux | grep <container_name_or_id>
这将列出所有与容器相关的进程,并显示它们在宿主机上的 PID。
总结
docker top
列出容器内的进程(容器内的 PID)。docker inspect
可以显示容器在宿主机上的主进程 PID。- 结合
/proc
文件系统可以进一步分析进程的详细信息。