为什么我不能在mac上看到进程状态列表中的mongo PID
我正在使用docker。 所以docker是一个过程,而不是一个虚拟机。 检查这一点。 所以我试图运行“docker run –name mongo -d mongo”,它工作正常。 然后我使用“docker top mongo”检查了'PID',它返回'PID'的细节。 然后我试着'ps辅助'来查看所有进程状态。 但我不能在列表中看到mongo“PID”。 这是为什么。 我用最新的mac os使用mac。
你需要docker exec到你的mongodb容器,运行在你的XHyve / HyperKit虚拟机中。
docker exec -it <containerID> bash
然后你可以执行一个ps,并在那里看到mongodb pid。
请参阅本文中的示例(在Mac上)“ 如何使用Docker使用MongoDB和NodeJS ”。
正如马特 在评论中所说 :
你也可以连接到VM来看到真正的PID
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
(如“ Mac / OS X上的/ var / lib / docker在哪里 ”中所述)
正如其他人所说,在MAC上运行时,Docker实际上是在虚拟机内部的背景中运行的,因此您将无法直接看到容器进程。
而且,即使连接到实际的虚拟机并检查了mongo容器的PID,它也会与运行docker top mongo
时报告的PID不同。
这是由于docker用来隔离Docker容器内运行的进程的PID名称空间 。 所以不要依靠PID来检测过程。