Docker的功能实现的几个系统支持

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

程序在Docker上运行示意图:

 

  • chroot & pivot_root

    限制容器中进程的活动范围,不能让容器中的进程去访问真实的系统目录,将他们的活动范围划定到一个指定的区域;

 

  • namespace

    把真实系统所在的世界隐藏起来,别让容器中的进程看到,比如进程列表、网络设备、用户列表这些,是决不能让容器中的进程知道的,得让他们看到的世界是一个干净如新的系统;

 

  • CGroup

    通过它可以划定一个个的分组,然后限制每个分组能够使用的资源,比如内存的上限值、CPU的使用率、硬盘空间总量等等,系统内核会自动检查和限制这些分组中的进程资源使用量;

 

posted @ 2024-06-24 10:09  tomato_4  阅读(10)  评论(0编辑  收藏  举报