18_security/README.md
容器安全是生产环境部署的核心考量。本章介绍 Docker 的安全机制和最佳实践。
核心问题:容器共享宿主机内核,隔离性弱于虚拟机。如何在便利性和安全性之间取得平衡?
flowchart LR
subgraph VM ["虚拟机安全模型:
完全隔离(性能损耗)"]
direction TB
Guest["Guest OS"]
Hyper["Hypervisor
<-- 隔离边界"]
Host["Host OS"]
Guest --> Hyper --> Host
end
subgraph Container ["容器安全模型:
进程隔离(轻量但需加固)"]
direction TB
Proc["容器进程
(共享内核)"]
Mech["Namespace <-- 隔离边界
Cgroups
Capabilities"]
Proc --> Mech
end
本章涵盖 Docker 安全的多个层面,从内核隔离机制到运行时防护和供应链安全。
部署前检查:
| 检查项 | 命令/方法 |
|---|---|
| 漏洞扫描 | docker scout cves 或 trivy |
| 非 root 运行 | 检查 Dockerfile 中的 USER |
| 资源限制 | 检查 -m, --cpus 参数 |
| 只读文件系统 | 检查 --read-only |
| 无特权模式 | 确认没有 --privileged |
| 最小能力 | 检查 --cap-drop=all |
| 网络隔离 | 检查网络配置 |
| 敏感信息 | 确认无硬编码密码 |