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

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

 

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

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、路由等资源。

  6. User namespace : 让容器能够管理自己的用户,host 不能看到容器中创建的用户。

 

 

猜你喜欢

转载自www.cnblogs.com/birdyw/p/11805878.html
今日推荐