为什么我在 mac 上的进程状态列表中看不到 mongo PID
Why can't I see the mongo PID in process state list on mac
我正在使用 docker。所以 docker 是一个进程,而不是虚拟机。检查这个。所以我尝试 运行 'docker run --name mongo -d mongo',效果很好。然后我使用 'docker top mongo' 检查了 'PID' 它 return 'PID' 的详细信息。然后我尝试 'ps aux' 查看所有进程状态。但我在列表中看不到 mongo 'PID'。这是为什么。我正在使用 mac 和最新的 mac os.
您需要 docker 执行您的 mongodb 容器,运行 在您的 XHyve/HyperKit 虚拟机中。
docker exec -it <containerID> bash
然后你可以执行一个ps,并在那里看到mongodb pid。
参见本文“How to use MongoDB & NodeJS with Docker”作为示例(在 Mac)。
作为Matt adds :
You can also connect to the vm to see the real pid with
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
(如“”中所述)
正如其他人提到的,当 运行ning 在 MAC 上时,Docker 实际上是 运行ning 在虚拟机的后台,因此您将无法直接查看容器进程。
此外,即使您连接到实际的 VM 并检查 mongo 容器的 PID,它也将与您 运行 docker top mongo
时报告的 PID 不同。
这是由于 PID namespaces docker 用于隔离进程 运行ning 在 docker 容器内。所以不要依赖PID来检测进程。
我正在使用 docker。所以 docker 是一个进程,而不是虚拟机。检查这个。所以我尝试 运行 'docker run --name mongo -d mongo',效果很好。然后我使用 'docker top mongo' 检查了 'PID' 它 return 'PID' 的详细信息。然后我尝试 'ps aux' 查看所有进程状态。但我在列表中看不到 mongo 'PID'。这是为什么。我正在使用 mac 和最新的 mac os.
您需要 docker 执行您的 mongodb 容器,运行 在您的 XHyve/HyperKit 虚拟机中。
docker exec -it <containerID> bash
然后你可以执行一个ps,并在那里看到mongodb pid。
参见本文“How to use MongoDB & NodeJS with Docker”作为示例(在 Mac)。
作为Matt adds
You can also connect to the vm to see the real pid with
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
(如“
正如其他人提到的,当 运行ning 在 MAC 上时,Docker 实际上是 运行ning 在虚拟机的后台,因此您将无法直接查看容器进程。
此外,即使您连接到实际的 VM 并检查 mongo 容器的 PID,它也将与您 运行 docker top mongo
时报告的 PID 不同。
这是由于 PID namespaces docker 用于隔离进程 运行ning 在 docker 容器内。所以不要依赖PID来检测进程。