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

目前,我正在尝试通过读取文件/ proc / 1 / cgroup来获取它

@ 容器:

      $> 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内部执行程序时是“ container1”,否则函数在主机上执行相同时将返回“ NULL”。

最佳答案

我认为您在“ C”语言中找不到所需的程序。

但是您可以自己编写一个简单的C程序来检查是否存在名为“ /.dockerinit”的docker初始化文件。
该文件位于每个Docker容器内部(Docker创建它)。

如果该文件存在,则可以打印主机名。

关于c - 在容器内部查找容器名称的C程序-LXC,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32732782/

10-16 18:40