标准答案

  1. 容器里的进程仍由宿主机内核调度,文件系统、进程、网络和用户视图通过 namespace 隔离。
  2. 虚拟机通过 hypervisor 提供虚拟硬件并运行独立内核,故障和内核边界通常更强,但需要启动 guest OS。
  3. 容器启动快不代表安全隔离一定更强;容器共享内核,特权配置、内核漏洞和挂载目录都会影响边界。
  4. 选择时按隔离要求、启动密度、内核需求、运维能力和合规边界判断,不能只比较启动时间。

题目解析

容器通常通过 Linux namespaces 提供视图隔离,通过 cgroups 提供资源限制,进程仍共享宿主机内核;镜像则主要解决文件系统和交付的一致性。虚拟机包含独立的 guest kernel,边界和启动成本不同,不能把“启动快”理解成隔离能力相同。

容器适合应用打包、部署和资源治理,但默认配置不是完整安全沙箱。特权容器、额外 capabilities、宿主机目录挂载、内核漏洞和容器运行时漏洞都可能扩大边界;不可信代码执行要评估虚拟机、微虚拟机或专用沙箱。

常见误区

  • 误区:认为容器拥有完全独立的内核。改正:说明容器进程共享宿主机内核,隔离依赖 namespaces、cgroups 和安全策略。
  • 误区:把容器隔离当作所有安全问题的解决方案。改正:同时限制 capability、挂载、网络、运行用户和内核攻击面。

作者信息