如何检查进程是否在Docker容器中运行

[Updated1]我有一个外壳,它将在某些功能中更改TCP内核参数,但是现在我需要使该外壳在Docker容器中运行,这意味着,该外壳需要知道它在容器内运行并停止配置内核。

现在我不确定如何实现,这是/proc/self/cgroup容器内部的内容:

9:hugetlb:/

8:perf_event:/

7:blkio:/

6:freezer:/

5:devices:/

4:memory:/

3:cpuacct:/

2:cpu:/docker/25ef774c390558ad8c4e9a8590b6a1956231aae404d6a7aba4dde320ff569b8b

1:cpuset:/

我可以使用上面的任何标志来确定此过程是否在容器内运行吗?

[Updated2]:我还注意到确定进程是否在lxc/Docker中运行,但在这种情况下似乎不起作用/proc/1/cgroup,我容器中的内容为:

8:perf_event:/

7:blkio:/

6:freezer:/

5:devices:/

4:memory:/

3:cpuacct:/

2:cpu:/docker/25ef774c390558ad8c4e9a8590b6a1956231aae404d6a7aba4dde320ff569b8b

1:cpuset:/

否/ lxc / containerid

回答:

要检查Docker容器内部是否可以在Docker容器中,可以通过进行/proc/1/cgroup。正如这篇文章所建议的,您可以执行以下操作:

在docker容器之外,所有条目都以/proc/1/cgroup结尾结尾,/如下所示:

vagrant@ubuntu-13:~$ cat /proc/1/cgroup

11:name=systemd:/

10:hugetlb:/

9:perf_event:/

8:blkio:/

7:freezer:/

6:devices:/

5:memory:/

4:cpuacct:/

3:cpu:/

2:cpuset:/

在Docker容器内,某些控制组将属于Docker(或LXC):

vagrant@ubuntu-13:~$ docker run busybox cat /proc/1/cgroup

11:name=systemd:/

10:hugetlb:/

9:perf_event:/

8:blkio:/

7:freezer:/

6:devices:/docker/3601745b3bd54d9780436faa5f0e4f72bb46231663bb99a6bb892764917832c2

5:memory:/

4:cpuacct:/

3:cpu:/docker/3601745b3bd54d9780436faa5f0e4f72bb46231663bb99a6bb892764917832c2

2:cpuset:/

以上是 如何检查进程是否在Docker容器中运行 的全部内容, 来源链接: utcz.com/qa/433261.html

回到顶部