【问题标题】:How to find a process's pid in docker host namespace from inside a container in which it is running如何从正在运行的容器内部在 docker 主机名称空间中查找进程的 pid
【发布时间】:2017-05-23 05:07:51
【问题描述】:

我有一个在容器内运行的进程。我想从容器内部知道这个进程在 docker 主机命名空间中的 pid。我在容器中有一个 docker 客户端安装程序,我可以从中执行一些命令,但我没有完全权限,因为我是从容器内部执行此操作的。有没有办法找到这个 pid?

【问题讨论】:

  • ps -eaf 不工作?
  • @NareshJoshi ps -eaf 会给我执行它的命名空间中的 pid。例如从容器内运行,它将提供特定于该容器命名空间的 pid。我想从容器内部获取 docker 主机命名空间中的 pid。
  • 你的目标是什么?容器应该与主机隔离
  • 目标是确保在 docker 主机上一次只有一个进程实例在运行。所以想法是将进程的pid存储在docker主机级别,以便在启动新实例之前可以对其进行检查。我面临的问题是 docker 主机和容器级别的进程的 pid 不同。所以,我想在码头主机级别获得 pid,但我只能从容器内部这样做。为此,我可以访问 docker。

标签: docker process docker-container


【解决方案1】:

这种方法的目的是确保在 docker 主机上一次只运行一个进程实例。所以想法是将进程的pid存储在docker主机级别,以便在启动新实例之前可以对其进行检查。 我通过使用容器 id 找到了另一种方法。您可以从容器内部执行 docker ps ,它将列出在 docker 主机上运行的所有容器。此外,与 pid 不同,容器 id 不会随命名空间而变化。这解决了我的问题。

【讨论】:

  • 除非你在容器中也安装了 docker,否则如何在容器中执行 docker ps?
猜你喜欢
  • 2017-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
相关资源
最近更新 更多