2015-09-23 22 views
-1

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

目前我正尝试通过读取文件/ 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”。

回答

0

我不认为有任何这样的程序存在你在“C”语言寻找什么。

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

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