问题
服务运行环境是 k8s ,如果要执行 docker 命令,主要是安全问题,如何避免容器逃逸?
AI 提供了两种解决方案
- 挂载主机 sock 使用 dind 执行 docker 命令
- 使用 buildx/buildkit ,维护一个专门执行 docker 命令的集群提供 docker 能力

服务运行环境是 k8s ,如果要执行 docker 命令,主要是安全问题,如何避免容器逃逸?
1 weilai99 用 kaniko |
2 SmallZheng Sep 1, 2025 kaniko +1 |
3 anubu Sep 1, 2025 kaniko 不再维护了,但应该能继续用。docker 有 dind 镜像,sidecar 挂给业务容器,或 daemonset 每个节点放一个应该都行。 |
4 orFish Sep 1, 2025 |
5 danbai PRO 可以看看 firecracker-containerd 据描述他的隔离级别是对标 qemu |
6 Clannad0708 Sep 1, 2025 我工作接触过的,一种用 dind ,将宿主机的 sock 挂在进去,就是 dind 。还有可以试下用安全容器技术,katacontainer ,gvisor 。他们有自己的 sandbox 隔离容器。不和宿主机共享内核 |
8 ExplodingDragon Sep 2, 2025 kaniko 算是侵入性最小的方案了,而且只是没有新特性更新了,错误修复还是在继续进行: https://github.com/chainguard-dev/kaniko 或者就是使用 sysbox : https://github.com/nestybox/sysbox 处理部分执行权限问题然后在 pod 内用 docker/podman 最后就是:不要考虑任何依赖特权模式的解决方案 |
9 weilai99 Sep 2, 2025 buildah 也行 |
10 sampeng Sep 2, 2025 以前我也焦虑这个问题。后来想明白了。。这都是自己吓自己。没有任何手段从外部进来。docker build 也是自己写,ci 自动调度的。哪来的 docker 逃逸呢? |
11 standchan Sep 2, 2025 buildkit |
12 Lee2019 Sep 2, 2025 docker context 配置一个远端的 docker host ,容器里面只要有 docker cli 即可 |
13 julyclyde Sep 6, 2025 我还以为在“里面”运行一个 docker daemon 才叫 dind 呢 没想到居然是挂外边的 sock 进去?? |
14 zidy Oct 8, 2025 buildkit rootless 模式。 |