Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

第九十九章:隔离的边界:虚拟机与容器(进阶)

复习

  • 操作系统通过权限、地址空间和进程边界隔离共享资源。

TL;DR

  • 虚拟机和容器都提供隔离环境,但隔离的层次不同。
  • 虚拟机通常各自运行内核;容器通常共享宿主内核。

正文

  虚拟机在硬件之上再提供一台看似完整的计算机:每个客户系统可有自己的内核、驱动和用户空间。它的边界较完整,代价也较高。

  容器更多是在同一个内核中,把进程看到的名称、网络、文件和资源限制分别隔开。它启动较轻,但共享同一内核意味着边界与兼容性都不同。二者都不是魔法,而是前面权限、进程、地址空间和资源管理机制的不同组合。

  现在回头看,操作系统从开机那一条指令出发,已经在硬件之上搭起了可让许多程序共同生活的环境。

思考题

为什么容器通常比完整虚拟机启动更快?

小结

  • 虚拟机将隔离边界扩展到完整系统。
  • 容器共享内核,以较轻的代价隔离进程环境。

思考题答案(仅供参考)

  容器通常不必为每个实例启动一个完整内核,只需创建受隔离的进程环境。

协议

本文采用 CC BY-NC-SA 4.0 协议发布。