可以在 docker 容器中运行 host 中的 shell 命令吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mailshuxin
V2EX    Docker

可以在 docker 容器中运行 host 中的 shell 命令吗?

  •  
  •   mailshuxin 2021-10-12 14:25:02 +08:00 3022 次点击
    这是一个创建于 1463 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前网站使用了 docker,几个常用的组件 nginx,redis,mariadb,php 都用了容器,这样非常便于迁移和备份,感觉性能的影响也不大。特别是有程序需要用到 php52,用 docker 真的是超级简单。

    目前遇到一个问题:php 需要调用 fontools 中的 pyftsubset,但是 fontools 是安装在 host 中的。如

    有没有可能实现,从容器中调用 host 中的命令呢?

    谢谢帮助。

    23 条回复    2021-12-01 15:56:55 +08:00
    anstxy
        1
    anstxy  
       2021-10-12 14:39:37 +08:00
    问下这个 host 是啥
    ReferenceE
        2
    ReferenceE  
       2021-10-12 14:39:56 +08:00 via Android
    从容器调用 host ...
    不清楚,您是否在查找:虚拟机 /容器化逃逸漏洞
    SingeeKing
        4
    SingeeKing  
    PRO
       2021-10-12 14:42:19 +08:00   1
    一个正确的方法是在 docker 中安装 fontools
    Yourshell
        5
    Yourshell  
       2021-10-12 14:43:00 +08:00 via Android
    二进制的话直接 mount ?
    Vegetable
        6
    Vegetable  
       2021-10-12 14:46:07 +08:00
    别瞎搞,老老实实装进 docker
    passon
        7
    passon  
       2021-10-12 14:50:36 +08:00
    这容器不存粹
    sadfQED2
        8
    sadfQED2  
       2021-10-12 14:54:49 +08:00 via Android
    容器中使用 ssh 连接宿主机,然后执行 shell 命令
    anonydmer
        9
    anonydmer  
       2021-10-12 15:19:34 +08:00
    老老实实自己定制个容器,里面装上 php 和 fontools
    ampedee
        10
    ampedee  
       2021-10-12 15:45:45 +08:00 via iPhone
    可以,直接把 host 的根目录挂载进容器
    noe132
        11
    noe132  
       2021-10-12 16:09:06 +08:00 via Android
    我有个容器需要在 host 上修改防火墙规则
    我是在容器里 ssh 到 host 执行命令的。
    iBaoger
        12
    iBaoger  
       2021-10-12 16:42:10 +08:00 via Android
    1.docker 里安装
    2.写一个远程调用
    guxin0123
        13
    guxin0123  
       2021-10-12 18:22:45 +08:00
    docker run -p 8081:8081 -d -v /var/run/docker.sock:/var/run/docker.sock wangbinxingkong/fast

    这些 dockers 管理工具 管理宿主机 docker 服务是这样映射的
    但是你的那个好像又不是服务,这个方式不一定能行
    acrisliu
        14
    acrisliu  
       2021-10-12 19:02:52 +08:00 via iPhone
    自己以 php 为 base image 写个 dockerfile,把 fontools 装进去最好。
    ik
        15
    ik  
       2021-10-12 19:37:05 +08:00 via iPhone
    用 sock 方式启动,挂载 sock 到容器?
    JWilling
        16
    JWilling  
       2021-10-12 20:39:03 +08:00
    @SingeeKing 能请教下是 fontools 还是 fonttools 吗?另外可以给我个关键字吗?我查 fontools 都是 python 中的字体格式化库。
    JWilling
        17
    JWilling  
       2021-10-12 20:41:37 +08:00
    @acrisliu 能请教下 fontools 是什么吗?或者要配合什么关键字一起搜索?
    acrisliu
        18
    acrisliu  
       2021-10-12 21:10:24 +08:00 via iPhone
    @Zhancha 没用过,复制的楼主的,刚查了下应该是 fonttools 吧。
    julyclyde
        19
    julyclyde  
       2021-10-13 12:52:17 +08:00
    正常情况下,对容器来说,host 是一个无法感知到的东西
    mailshuxin
        20
    mailshuxin  
    OP
       2021-10-13 14:14:42 +08:00 via iPhone
    谢谢大家。安装到容器里机了。这样比较简单实用
    JWilling
        21
    JWilling  
       2021-10-14 21:05:55 +08:00
    @mailshuxin 能请教下解决方案吗?
    MXuD0ng
        22
    MXuD0ng  
       2021-12-01 15:55:07 +08:00
    docker run -it --privileged -v /proc:/host/proc {DOCKER_IMAGE}

    容器内调用 host shell:nsenter --mount=/host/proc/1/ns/mnt sh -c " Your command here "
    MXuD0ng
        23
    MXuD0ng  
       2021-12-01 15:56:55 +08:00
    @MXuD0ng 这种方式挺危险的 需要注意一下哦,因为当前容器可能拥有 Root 权限
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4543 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:05 PVG 12:05 LAX 21:05 JFK 00:05
    Do have faith in what you're doing.
    ubao 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