docker零基础第三篇: 容器底层实现技术

容器底层实现技术: cgroup  , namespace ,  unionfsdocker

 

1.cgroup 实现了资源的限额:CPU,内存,硬盘
2.namespace 实现了资源隔离
3.unionfs 联合文件系统spa

cgroup实例:进程

 # docker run -d -m 100M httpd      -----------实现了对内存的限额内存

namespace:资源

Linux 使用了六种 namespace,分别对应六种资源:Mount、UTS、IPC、PID、Network 和 User路由

  1. Mount namespace :  Mount namespace 让容器看上去拥有整个文件系统
  2. UTS namespace : UTS namespace 让容器有本身的 hostname。 默认状况下,容器的 hostname 是它的短ID,能够经过 -h 或 --hostname 参数设置。
  3. IPC namespace : 让容器拥有本身的共享内存和信号量(semaphore)来实现进程间通讯,而不会与 host 和其余容器的 IPC 混在一块儿
  4. PID namespace : 容器在 host 中以进程的形式运行。容器内进程的 PID 不一样于 host 中对应进程的 PID,容器中 PID=1 的进程固然也不是 host 的systemd进程。也就是说:容器拥有本身独立的一套 PID,这就是 PID namespace 提供的功能。
  5. Network namespace : 让容器拥有本身独立的网卡、IP、路由等资源。io

  6. User namespace : 让容器可以管理本身的用户,host 不能看到容器中建立的用户。
相关文章
相关标签/搜索