K8S 中的 POD,如何安全的执行 docker build? - V2EX
zerphyr

K8S 中的 POD,如何安全的执行 docker build?

  •  
  •   zerphyr Sep 1, 2025 3378 views
    This topic created in 253 days ago, the information mentioned may be changed or developed.

    问题

    服务运行环境是 k8s ,如果要执行 docker 命令,主要是安全问题,如何避免容器逃逸?

    AI 提供了两种解决方案

    1. 挂载主机 sock 使用 dind 执行 docker 命令
    2. 使用 buildx/buildkit ,维护一个专门执行 docker 命令的集群提供 docker 能力

    想问下大家有没有遇到类似的问题,如何解决的?

    Supplement 1    Sep 1, 2025
    找到了历史的回答: https://v2ex.com/t/1139075
    14 replies    2025-10-08 17:11:39 +08:00
    weilai99
        1
    weilai99      Sep 1, 2025
    用 kaniko
    SmallZheng
        2
    SmallZheng  
       Sep 1, 2025
    kaniko +1
    anubu
        3
    anubu  
       Sep 1, 2025   1
    kaniko 不再维护了,但应该能继续用。docker 有 dind 镜像,sidecar 挂给业务容器,或 daemonset 每个节点放一个应该都行。
    orFish
        4
    orFish  
       Sep 1, 2025
    @weilai99
    @SmallZheng kaniko 已经 archived 了
    danbai
        5
    danbai  
    PRO
       Sep 1, 2025   1
    可以看看 firecracker-containerd 据描述他的隔离级别是对标 qemu
    Clannad0708
        6
    Clannad0708  
       Sep 1, 2025   1
    我工作接触过的,一种用 dind ,将宿主机的 sock 挂在进去,就是 dind 。还有可以试下用安全容器技术,katacontainer ,gvisor 。他们有自己的 sandbox 隔离容器。不和宿主机共享内核
    zerphyr
        7
    zerphyr  
    OP
       Sep 1, 2025
    @weilai99 kaniko 不考虑,首先不维护,其次会有特性缺失
    ExplodingDragon
        8
    ExplodingDragon  
       Sep 2, 2025   1
    kaniko 算是侵入性最小的方案了,而且只是没有新特性更新了,错误修复还是在继续进行: https://github.com/chainguard-dev/kaniko

    或者就是使用 sysbox : https://github.com/nestybox/sysbox 处理部分执行权限问题然后在 pod 内用 docker/podman

    最后就是:不要考虑任何依赖特权模式的解决方案
    weilai99
        9
    weilai99  
       Sep 2, 2025
    buildah 也行
    sampeng
        10
    sampeng  
       Sep 2, 2025
    以前我也焦虑这个问题。后来想明白了。。这都是自己吓自己。没有任何手段从外部进来。docker build 也是自己写,ci 自动调度的。哪来的 docker 逃逸呢?
    standchan
        11
    standchan  
       Sep 2, 2025
    buildkit
    Lee2019
        12
    Lee2019  
       Sep 2, 2025
    docker context 配置一个远端的 docker host ,容器里面只要有 docker cli 即可
    julyclyde
        13
    julyclyde  
       Sep 6, 2025
    我还以为在“里面”运行一个 docker daemon 才叫 dind 呢
    没想到居然是挂外边的 sock 进去??
    zidy
        14
    zidy  
       Oct 8, 2025   1
    buildkit rootless 模式。
    About     Help     Advertise     Blog     API     FAQ     Solana     1766 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 67ms UTC 16:20 PVG 00:20 LAX 09:20 JFK 12:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86