我正在使用码头工具。所以docker是一个进程,而不是VM。检查这个。所以我试着运行'docker run --name mongo -d mongo',它运行正常。然后我使用'docker top mongo'检查'PID'它返回'PID'细节。然后我尝试'ps aux'来查看所有过程状态。但我不能在列表中看到mongo'PID'。这是为什么。我正在使用mac和最新的mac os。
答案 0 :(得分:4)
你需要将你的mongodb容器停靠在你的XHyve/HyperKit虚拟机中。
docker exec -it <containerID> bash
然后你可以执行ps,并在那里看到mongodb pid。
请参阅本文“How to use MongoDB & NodeJS with Docker”作为示例(在Mac上)。
由于Matt添加in the comments:
您还可以使用
连接到vm以查看真实的pidscreen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
答案 1 :(得分:3)
正如其他人所提到的,当在MAC上运行时,Docker实际上是在VM内部的背景中运行,因此您将无法直接看到容器进程。
此外,即使您连接到实际的VM并检查mongo容器的PID,它也会与运行docker top mongo
时报告的PID不同。
这是由于PID namespaces码头工具用于隔离在docker容器内运行的进程。所以不要依赖PID来检测过程。