privileged: true 的意思是:
容器拥有宿主机内核的完全访问权限。
具体能做的事:
1. 拥有所有 Linux Capabilities
CAP_SYS_ADMIN、CAP_NET_ADMIN、CAP_SYS_PTRACE...
所有能力全开
2. 可以访问宿主机所有设备
ls /dev # 能看到宿主机的所有硬件设备
3. 可以挂载文件系统
mount /dev/sda1 /mnt # 直接挂载宿主机磁盘
4. 可以加载内核模块
insmod xxx.ko
5. 可以操作网络
iptables、修改路由表、创建网络接口
所以在 DinD 场景下:
sandbox 容器 privileged: true
↓
能看到宿主机 /dev 下的真实磁盘
↓
mount /dev/sda1 /mnt
↓
完全读写宿主机文件系统 ⚠️
这就是为什么 sandbox 容器不能开 privileged: true,否则安全边界就彻底消失了。