浅析Docker的资源隔离和限制

2016-05-30 18:38杨浚
科技尚品 2016年8期
关键词:虚拟化

杨浚

摘 要:简要介绍了docker容器的核心技术namespace和cgroup,以及实现容器隔离的方法。

关键词:Docker;namespace;cgroup;虚拟化;linux

Docker当前的定义是一个开源的容器引擎,可以方便地对容器进行管理,封装整个软件的运行环境,为开发者和系统管理者提供用于开发、设计、构建、测试、发布、运行的应用平台。得益于其轻量级的虚拟化,以及分层镜像应用,Docker在磁盘、性能和效率上比传统虚拟化有明显的优势。

Docker容器的核心技术就是namespace和cgourp,Docker本身就是软件,其本质就是主机上的进程,它通过linux内核提供的namespace功能实现了资源的隔离,通过cgroup实现了资源的限制。Namespace隔离有6种,分别是UTS(主机名)、IPC(内部进程通信)、PID(进程号)、Network(网咯设备、端口等)、Mount(挂载点)、User(用户)。通过namespace,可是使得不同容器里的进程置于一个独立的系统运行环境里,不能互相感知到,达到了隔离的目的。最常用的namespace的API就是clone(),通过clone()方法,可以在创建新进程的同时创建namespace,代码如下:

#define _GUN_SOURCE

#include

#include

猜你喜欢
虚拟化
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
虚拟化技术在CTC/TDCS系统中的应用研究
虚拟化技术在计算机技术创造中的应用
高速公路服务器虚拟化技术应用与探讨
存储虚拟化还有优势吗?