加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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:/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读