技术特征:
1.一种获取docker容器资源信息的方法,其特征在于,包括:修改系统调用表sys_call_table中sys_read函数,将所述sys_read函数替换为docker_read函数,所述docker_read函数的逻辑流程具体包括以下步骤:(1)判断发起的请求是否是一个资源获取的请求,具体根据请求的路径是否是/proc/meminfo来判定发起的请求是否是资源获取请求,如果是,则继续步骤(2);如果不是,则调用所述sys_read函数;(2)通过查看task_struct中的css_set指针是否指向cgroup来判断发起资源请求的进程是否存在cgroups资源限制,如果有,则cgroups在内核中提供的资源信息获取接口task_struct,得到发起资源请求的进程所在控制组的资源信息结构体mem_cgroup;如果没有,则去调用所述sys_read函数;将所述资源信息结构体mem_cgroup返回给callback函数,并让callback函数重新调用注册函数进行注册,在callback函数注册完成后,重新生成/proc/meminfo文件,此时,docker容器内的程序可获得容器正确的资源信息。2.根据权利要求1所述的获取docker容器资源信息的方法,其特征在于,修改系统调用表sys_call_table中sys_read函数,将所述sys_read函数替换为docker_read函数具体包括:从/boot/system.map中读取系统调用表sys_call_table的内存地址,找到内存地址后,即可将系统调用表sys_call_table中的sys_read替换为所述docker_read函数。