V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
byzf
V2EX  ›  Docker

吐槽容器化工具 podman

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

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

    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 还早着呢,目测一年半年够呛
    0312birdzhang
        11
    0312birdzhang  
       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   ·   实用小工具   ·   967 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:50 · PVG 06:50 · LAX 14:50 · JFK 17:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.