隔离性
应用程序要跑,就需要有一个环境沙箱,这个封闭的环境保证应用不会与其它的应用冲突,所有应用涉及的依赖都只在这个环境里面,不会在另外的环境。
Linux Namespace是linux内核提供的资源隔离方案
- 可以为进程分配不同的namespace;
- 保证不同的namespace资源独立分配、进程彼此隔离;
Linux对Namespace操作方法
- clone
在创建新进程的系统调用时,可以通过 flags 参数指定需要新建的 Namespace 类型 - setns
该系统调用可以让调用进程加入某个已经存在的 Namespace 中:
Int setns(int fd, int nstype) - unshare
该系统调用可以将调用进程移动到新的 Namespace 下:
int unshare(int flags)
便携性
docker应用环境可以做到一处启用,linux环境随处可用。
可配额
docker应用的资源是可以随需配置的。
安全性
docker不会对主机造成影响,也不会对其它宿主机进行造成影响(超配额不会导致其它进程异常