九维我操你爹
https://t.me/xixihealth/17666
https://t.me/c/1459082815/946

作为一个有段时间没活跃的 nerdctl maintainer 出来说两句

nerdctl 实际上是作为 containerd 一个 CTL 来作为初始化的开发。定位改为 Docker 的替代实际上是很后面的事情了
而要做兼容的事情实际上要考虑的就很多了,我自己做过很多很 dirty 的活包括不仅限于
1. 兼容 Docker 随机 port 的行为
2. 清理环境
3. 处理 DNS 相关的问题
4. 修 registry 的行为

而 nerdctl 很多东西实际上受限于无法有 Docker 一样的 daemon ,搞个 bridge ,再搞个 DNS 会导致很多东西很难做
比如我之前想做的参考 podman 一样做一个 DNS CNI(

同时 nerdctl 很多机制需要依赖 containerd 的 plugin 来做回调,比如 logger driver 就是如此实现的,所以会有人吐槽为什么我记录个日志还得在内存里 load 一个 nerdctl 233333

而局限于 CNI 做事是主观+客观因素双重因素导致的。nerdctl 试图在 ctd 以及 OS 这一层做的尽可能的兼容(PS nerdctl 是支持 freebsd 的东西的(XDD),而且要考虑 rootless 以及nerdctl 被各种工具开箱集成这一事实(比如 mac 上的虚拟机,第三方集成等),最后 CNI 可能是带着镣铐下的最优解

所以 nerdctl 并不是 docker 的完全替代品我是完全赞成的。但是这个局面只能说是多种因素共同作用

等我有时间我再想想网络这块能怎么样做的更好.jpg 囍频道
囍频道
我们只是用 nerdctl 起 A、B 两个容器而已,不需要很复杂的功能。但是 nerdctl 和 docker 之间有很多行为上不一致的地方,踩坑踩麻了……(不是 bug,是一开始就这么设计的
后来随手发的一条有幸被 saka 回了。回过头来看自己都觉得之前的频道消息没把自己的想法讲清楚,所以在炎上被骂之前先叠个甲,重新梳理下我想表达什么东西
首先阅读理解一下引用的部分哈,我只是想表达两件事:
1. 我完全理解 nerdctl 为啥会有这些和 docker-ce engine 不同的行为。一些 docker 做得不太好的设计,nerdctl 是完全有理由不去继承的。何况 containerd 和 docker 并不是两种相同的东西,在 containerd 之上构建的东西经常需要去实现很多以前 docker 自己底层替你做好的事
2. 但是站在用户视角,从 docker 切换到 nerdctl 以后一些很简单的事情都变得很麻烦了。以前跨网桥的两个容器默认可以互相访问,迁移过来却遇到了问题。而在设法解决这个问题时,照着官方文档创建关闭 firewall cni 插件的网桥的说明操作,没有跑通,忍不住吐槽两句我觉得也是人之常情?

总结一下,我不觉得 nerdctl 有什么问题。不然肯定积极地尝试提 pr 修复。就算我技术能力不行,至少也可以去骚扰 saka 不是?(笑
我也不是马后炮,在调研过程中翻 issue 的时候早就看到了这个熟悉的名字。而且我和 saka 也互相交换过联系方式,并不觉得找他帮忙有什么心理或技术上的障碍

推上有 nerdctl 的 maintainer 也回过我,说 nerdctl 算是技术实验场,所以不应该把 nerdctl 看作是 docker 的替身。我现在对这一点完全同意,但是在遇到这次事之前,我以为 nerdctl【首先】是 docker 的替身,【此外】还有一些新的功能
这个看法是不准确的,所以最开始发这一条,说 nerdctl 厨体验卡到期,就是这个意思。通过公司安排的调研任务,我对 nerdctl 的错误认知被改正过来了。从今往后,是又爱又恨的新篇章
囍频道
什么垃圾,根本更新不了
同一个热点把工作电脑和手机都更新完了,不是热点的问题
什么垃圾,根本更新不了
问卷上要填年龄,不假思索填了 X 岁。愣了一下发现不对,应该是 X-1
小时候盼望长大,常想早点迎来下一岁的生日。这样就又可以吃到蛋糕,收到些零花钱
现在真的长大了,却也是在心里把自己的年龄记得稍大一些。这样来催促自己早做打算,不能总觉得自己还年轻了
Back to Top