shell – 如何检查进程是否在docker容器内运行
发布时间:2020-12-15 19:46:02 所属栏目:安全 来源:网络整理
导读:[Updated1]我有一个shell将在一些函数中改变TCP内核参数,但现在我需要使这个shell在Docker容器中运行,这意味着shell需要知道它运行在一个容器内并停止配置内核。 现在我不知道如何实现,这里是容器内的/ proc / self / cgroup的内容: 9:hugetlb:/8:perf_e
[Updated1]我有一个shell将在一些函数中改变TCP内核参数,但现在我需要使这个shell在Docker容器中运行,这意味着shell需要知道它运行在一个容器内并停止配置内核。
现在我不知道如何实现,这里是容器内的/ proc / self / cgroup的内容: 9:hugetlb:/ 8:perf_event:/ 7:blkio:/ 6:freezer:/ 5:devices:/ 4:memory:/ 3:cpuacct:/ 2:cpu:/docker/25ef774c390558ad8c4e9a8590b6a1956231aae404d6a7aba4dde320ff569b8b 1:cpuset:/ 上面的任何标记可以用来弄清楚这个进程是否在容器内运行? [已更新2]:我也注意到了Determining if a process runs inside 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容器内部,或者通过/ proc / 1 / cgroup可以完成Docker容器的检查。由于
this post建议您可以执行以下操作:
在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:/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读