前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Containerd 1.5 发布:重磅支持 docker-compose!

Containerd 1.5 发布:重磅支持 docker-compose!

作者头像
米开朗基杨
发布2021-05-11 15:53:08
8800
发布2021-05-11 15:53:08
举报
文章被收录于专栏:云原生实验室云原生实验室

2021 年 5 月 4 日,Containerd 1.5 正式发布[1],该版本默认启用了 OCIcrypt 解密功能,并引入了对 NRIzstdFreeBSD jails 的支持,同时还简化了对 Containerd 的贡献流程。下面就来看看具体更新了哪些功能吧。

默认 OCIcrypt 解密

Containerd 从 1.3 开始就支持从加密的镜像中运行容器,但没有作为默认启用的选项,直到 1.5 版本才默认启用,具体用法请参考文档[2]

需要注意的是,必须安装二进制文件 ctd-decoder 才能解密 OCIcrypt 镜像,该二进制文件包含在 cri-containerd-cni-1.5.0-linux-amd64.tar.gz[3] 中,但不包含在 containerd-1.5.0-linux-amd64.tar.gz 中。另外,OCIcrypt 并不适用于 Docker,因为 Docker 目前并没有使用 Containerd 来管理镜像。

NRI: Node Resource Interface

NRI(Node Resource Interface)[4]节点资源接口,类似于 CRI,但 NRI 可用于非网络资源,例如 GPU 调度限制和内存配额。具体用法可参考 NRI 示例代码[5]

zstd 压缩算法

除了 gzip 之外,Containerd 现在还支持 zstd[6] 镜像压缩算法,压缩速度比 gzip 快好几倍,具体通过 github.com/klauspost/compress/zstd[7] 来实现。关于 zstd 的性能测试结果请参考zstd 官方文档[8]

支持 FreeBSD

Containerd 从 1.5 版本开始实验性地支持 FreeBSD 操作系统,可以使用 FreeBSD jails[9] 运行一个兼容的 OCI 运行时,例如 runj[10]。同时还支持 ZFS 的快照管理,未来版本可能也会支持 unionfs[11]

简化贡献流程

CRI 插件仓库[12] 现已合并到 Containerd 主仓库[13]中,对用户来说没有明显变化,只是简化了开发者对 Containerd 的贡献流程。

nerdctl

nerdctl[14] 是一个与 Docker 兼容的 CLI,例如:

代码语言:javascript
复制
$ nerdctl run -d --name nginx -p 8080:80 --restart=always nginx

nerdctl 的目标并不是单纯地复制 docker 的功能,它还实现了很多 docker 不具备的功能,例如延迟拉取镜像(lazy-pulling[15])、镜像加密(imgcrypt[16])等。

nerdctl 在上个月作为非核心子项目加入了 Containerd 组织,详情请参考终于可以像使用 Docker 一样丝滑地使用 Containerd 了!

现在 nerdctl 还推出了一个爆炸性功能:直接兼容 docker-compose 的语法!也就是说,可以直接通过 docker-compose.yaml 启动容器:

代码语言:javascript
复制
$ nerdctl compose -f docker-compose.yaml up

求 Docker 此时内心的阴影面积。。

本来 Docker 在 Kubernetes 社区的地位就在急剧下滑,现在 Containerd 易用性的空缺也被 nerdctl 填补上了,连 docker-compose 也能兼容了,如今 Docker 就更不受待见了。虽说廋死的骆驼比马大,但 Docker 的辉煌时代终究一去不复返了。

脚注

[1]

Containerd 1.5 正式发布: https://github.com/containerd/containerd/releases/tag/v1.5.0

[2]

参考文档: https://github.com/containerd/containerd/blob/v1.5.0-rc.2/docs/cri/decryption.md

[3]

cri-containerd-cni-1.5.0-linux-amd64.tar.gz: https://github.com/containerd/containerd/releases

[4]

NRI(Node Resource Interface): https://github.com/containerd/nri

[5]

NRI 示例代码: https://github.com/containerd/nri#sample-plugin

[6]

zstd: https://github.com/containerd/containerd/pull/4809

[7]

github.com/klauspost/compress/zstd: https://github.com/klauspost/compress/tree/master/zstd

[8]

zstd 官方文档: https://github.com/klauspost/compress/blob/master/zstd/README.md

[9]

FreeBSD jails: https://en.wikipedia.org/wiki/FreeBSD_jail

[10]

runj: https://github.com/samuelkarp/runj

[11]

unionfs: https://www.freebsd.org/cgi/man.cgi?query=unionfs&sektion=8&manpath=freebsd-release-ports

[12]

CRI 插件仓库: https://github.com/containerd/cri

[13]

Containerd 主仓库: https://github.com/containerd/cri

[14]

nerdctl: https://github.com/containerd/nerdctl

[15]

lazy-pulling: https://github.com/containerd/nerdctl/blob/master/docs/stargz.md

[16]

imgcrypt: https://github.com/containerd/nerdctl/blob/master/docs/ocicrypt.md

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 默认 OCIcrypt 解密
  • NRI: Node Resource Interface
  • zstd 压缩算法
  • 支持 FreeBSD
  • 简化贡献流程
  • nerdctl
    • 脚注
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档