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 囍频道
 
 
Back to Top