吐槽容器化工具 podman - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
byzf
V2EX    Docker

吐槽容器化工具 podman

  •  
  •   byf 2021-09-12 21:49:21 +08:00 5998 次点击
    这是一个创建于 1499 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近反向感受了一波,啥叫程序员不愿意接受新事物,因为新东西是真的坑。下面发表一些不成熟的碎碎念,先声明全是的负能量。

    podman 以前挺多文章,就是说 docker 这个不行,那个不行,所以开发 podman,言外之意就是 docker 和 redhat 公司不对付,领导要下面编一点 docker 的缺点出来,把生态搞过来,仗着内核比较熟悉,开始挖 docker 的墙角。

    podman 这工具出了也几年了,最近看了一下,发现还一直在活跃开发,文档也全了,功能也多了,yum 也能装了,github一万多星,redhat 的手册里也加入了。我一寻思,这是不是就代表着能用了? 然后发现,并不是。

    • 优点之一,podman 有 pod,用 k8s 的语法,体验了一下,和 docker compose 这种社区自产自销的工具,易用性差了千八百倍,用这个是和自己过不去。

    • 优点之二,podman 可以 rootless 。在 podman 起步的时候,docker 似乎永远没有支持 rootless 的想法,现在 docker 也支持了,没啥区别。

    • 优点之三,没有 docker daemon,轻量。这个也没感受出来,docker daemon 也就监听个 sock,没占很多资源。docker 包确实大,但 nodejs 一个包一百多兆都有人承受,这点性能不算啥。

    • 优点之四,一键生成 k8s pod 文件,一键生成 systemd unit,这个使用下来 还不如手写

    podman 优点都飘飘欲坠,可有可无,然后是缺点都很扎实。

    • 一个是性能差,编译慢,启动也慢,大家都用 runc 为啥性能会差呢?目测了一遍 issues,一个是 rootless 和 rootful 环境不一样,还有一些优化上的 BUG 。虽说我没测过,但只要是个人,应该怎么样都感觉不出来 docker 会比这玩意儿慢。

    • 另一方面,podman 有些 BUG 会很离谱。比如 服务跑的好好的,podman ps 一下是空的,人都傻了。还有花样报错,今天找不到谁的 network 配置了,明天找不到哪个被删除的 container 了,可以说层出不穷。

    • 然后是 rootless container 之间的网络通信,根本没有什么能通信的方式,全靠开端口 publish,走 localhost,那还隔离啥?放 host 不好吗?好在我现在用的比较轻量,也没到端口到处撞的程度。

    • 这都不是最可怕的,上面这些咬咬牙也都过去了,总体 alias docker=podman 把坑坑洼洼都过去了没啥问题,关键是某些镜像,我目测是目测不出来什么不规范的地方,但 用 podman 和 docker 的表现不一致,装个镜像,挂载目录死活挂载不上。正常人都拿 docker 跑,谁跟你拿 podman 去跑,运行结果不一致,真的头都痛。

    合着我是给人测 bug 来了,这玩意儿居然给我用出了早期 Javascript 里各种奇技淫巧的感觉。喷完了,用 docker 。

    16 条回复    2022-04-10 14:53:14 +08:00
    jenlors
        1
    jenlors  
       2021-09-12 21:51:23 +08:00
    之前试用了一下果断弃了
    sagaxu
        2
    sagaxu  
       2021-09-12 21:54:50 +08:00   1
    byzf
        3
    byzf  
    OP
       2021-09-12 21:54:59 +08:00
    @long2ice 我之前试用了一下果断放弃,然后最近又 tm 不知道为啥又去试用了一下,可能是贱吧。
    cheng6563
        4
    cheng6563  
       2021-09-13 00:31:46 +08:00
    只看中他的 rootless,用来在 CI 里跑各种任务用,就没打算让他运行什么正经服务。
    swulling
        5
    swulling  
       2021-09-13 00:40:00 +08:00 via iPhone
    其实都是自己的服务,没必要 rootless,徒增烦恼。

    那种需要多租户甚至开放给外部的才需要。
    plko345
        6
    plko345  
       2021-09-13 00:43:38 +08:00 via Android
    我正准备试试呢,docker 的 daemon 也恶心
    des
        7
    des  
       2021-09-13 01:25:48 +08:00
    @cheng6563 我也是冲着 rootless 去的,结果发现很难用,各种莫名其妙的问题
    lancelock
        8
    lancelock  
       2021-09-13 11:06:14 +08:00
    我也试了一下 rootless,要额外配置,跑个服务经常有预期外的表现,找原因找的头痛,还是用 docker 得了
    byzf
        9
    byzf  
    OP
       2021-09-13 11:37:28 +08:00
    @swulling 怕中招啊。podman 如果能稳定的把 rootless 跑起来,跑 dind 之类的就彻底安全了。
    superhack
        10
    superhack  
       2021-09-13 11:38:05 +08:00
    赞同你,生产上能替代 docker 还早着呢,目测一年半年够呛
    1daydayde
        11
    1daydayde  
       2021-09-14 09:13:13 +08:00 via iPhone
    哈哈哈,给大家避坑了
    zeromake
        12
    zeromake  
       2021-09-14 16:39:46 +08:00 via Android
    我觉得还不如用 k3s,搞个正统的 k8s 环境好用,podman bug 都很奇怪而且都是正常使用会出现,复现率很高,我在公司用的 vm 里单机的 k3s 都稳的一批,都没出现过什么问题。
    ragnaroks
        13
    ragnaroks  
       2021-09-14 22:25:35 +08:00
    我不用 podman 的原因是它没有 daemon ;
    限制处理器、内存、用户是 systemd 本身就能做的事情,和容器最大的区别就是文件系统。
    julyclyde
        14
    julyclyde  
       2021-09-18 12:25:50 +08:00
    @ragnaroks 既然 systemd 都能做,你为什么还特地要求一个 daemon 呢?
    ragnaroks
        15
    ragnaroks  
       2021-09-18 13:47:55 +08:00
    @julyclyde daemon 被用于远程集中式管理
    Hacc
        16
    Hacc  
       2022-04-10 14:53:14 +08:00
    我现在是在用 podman+crun ,rootless 之前的容器通信我就把那几个容器放一个 pod 里了,容器间设定只共享网络命名空间。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3344 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 10:46 PVG 18:46 LAX 03:46 JFK 06:46
    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