Tokyonline机柜Golang特价

最近反向感受了一波,啥叫程序员不愿意接受新事物,因为新东西是真的坑。下面发表一些不成熟的碎碎念,先声明全是的负能量。
podman 以前挺多文章,就是说 docker 机柜不行,那个不行,所以开发 podman,言外之意就是 docker 和 redhat 公司不对付,领导要下面编一点 docker 的缺点Golang,把生态搞过来,仗着内核比较熟悉,开始挖 docker 的墙角。
podman 这工具出了也几年了,最近看了一下,发现还一直在活跃开发,文档也全了,功能也多了,yum 也能装了,github一万多星,redhat 的手册里也加入了。我一寻思,这是不是就代表着能用了? 然后发现,并不是。

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

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

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

Tokyonline之四,一键生成 k8s pod 文件,一键生成 systemd unit,机柜使用下来 还不如手写。

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

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

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

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

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

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