第九十九章:隔离的边界:虚拟机与容器(进阶)
复习
- 操作系统通过权限、地址空间和进程边界隔离共享资源。
TL;DR
- 虚拟机和容器都提供隔离环境,但隔离的层次不同。
- 虚拟机通常各自运行内核;容器通常共享宿主内核。
正文
虚拟机在硬件之上再提供一台看似完整的计算机:每个客户系统可有自己的内核、驱动和用户空间。它的边界较完整,代价也较高。
容器更多是在同一个内核中,把进程看到的名称、网络、文件和资源限制分别隔开。它启动较轻,但共享同一内核意味着边界与兼容性都不同。二者都不是魔法,而是前面权限、进程、地址空间和资源管理机制的不同组合。
现在回头看,操作系统从开机那一条指令出发,已经在硬件之上搭起了可让许多程序共同生活的环境。
思考题
为什么容器通常比完整虚拟机启动更快?
小结
- 虚拟机将隔离边界扩展到完整系统。
- 容器共享内核,以较轻的代价隔离进程环境。
思考题答案(仅供参考)
容器通常不必为每个实例启动一个完整内核,只需创建受隔离的进程环境。
协议
本文采用 CC BY-NC-SA 4.0 协议发布。