一个C程序,用于在容器内找到容器名称--LXC

时间:2015-09-23 06:46:49

标签: c docker lxc

我正在寻找C特定的函数来返回容器名称,如果它在容器内执行的话;我们有这样的东西吗?

目前我正试图通过阅读文件/ proc / 1 / cgroup

来获取它

@ container:

      $> cat /proc/1/cgroup 
      8:net_cls:/lxc/Container1
      7:freezer:/lxc/Container1
      6:devices:/lxc/Container1
      5:memory:/lxc/Container1
      4:cpuacct:/lxc/Container1
      3:ns:/Container1
      2:debug:/lxc/Container1
      1:cpuset:/lxc/Container1

@主持人:

      $> cat /proc/1/cgroup 
      8:net_cls:
      7:freezer:
      6:devices:
      5:memory:
      4:cpuacct:
      3:ns:
      2:debug:
      1:cpuset:

有了这个,我们可以得到容器名称;这里是" container1"在执行programm内部的容器1否则该函数返回" NULL"在主机上执行相同的操作。

1 个答案:

答案 0 :(得分:0)

我不认为有任何这样的程序存在于你正在寻找的内容中。" C" langauage。

但是你可以自己编写一个简单的C程序来检查名为" / .dockerinit"的docker init文件是否存在。 此文件存在于每个docker容器中(Docker创建它)。

如果此文件存在,您可以打印主机名。