如何检查进程是否在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/cgroup11: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/cgroup11: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