linux操作内核中,为资源隔离提供了三种技术:namespace、cgroup、chroot。容器就是操作系统里一个特殊的“沙盒”环境,与外部系统隔离。隔离是为了系统安全考虑。
- namespace:可以创建独立的文件系统、主机名、进程号、网络等资源空间,相当于给进程盖了一间小板房;
- crgoup:用来实现对进程的CPU、内存等资源的优先级和配额限制,相当于给进程加了天花板(你的上限被我控制啦);
- chroot:可以更改进程的根目录,也就是限制访问的文件系统,相当于给进程的小板房铺上了地砖(最下层你可以访问到哪里,就是你的地板来决定)。