gpt4 book ai didi

macos - 如何在主机中查看容器内的真实进程?

转载 作者:行者123 更新时间:2023-12-02 21:13:05 25 4
gpt4 key购买 nike

我在我的 Mac 中启动一个容器,例如docker run -it ubuntu:latest /bin/bash我可以找到 /bin/bash 的 pid来自 docker inspect 但我找不到 /bin/bash 的真实 PID在我的 mac。
再举一个例子:

docker run -it ubuntu:latest /bin/bash  
sleep 2000&

如果我在主机上做 ps -ef | grep sleep我找不到 sleep过程。
我认为在 Linux 中进程是可见的。它如何在 Mac 上运行?

最佳答案

我会说你没有。至少没有 ps -ef | grep sleep从主机。

这可能有效:

docker run -it --rm --name coolname ubuntu:latest /bin/bash
sleep 2000&

主机:
docker exec -it coolname ps -ef | grep sleep

在 Mac 上,您可以更进一步,因为 docker“native”实际上是一个最小的 linux 发行版。该图像是实际的“共享资源”。您可以使用 screen 之类的命令进入该图像。
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

现在,如果您在终端中执行以下操作:
docker run -it alpine /bin/sh
sleep 424242&

如上所述登录到 native 镜像。你会看到 sleep 命令的结果是这样的:
linuxkit-025000000001:~# ps -ef|grep sleep
3190 root 0:00 sleep 424242
3193 root 0:00 grep sleep

所以实际上可以看到共享资源。所以它也应该在 Linux 上工作,但它可能是完全原生的。

我不知道它在 Windows 上是如何工作的 :-)

关于macos - 如何在主机中查看容器内的真实进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53241687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com