Skip to content

Commit

Permalink
docs: container image pulling
Browse files Browse the repository at this point in the history
  • Loading branch information
ryan4yin committed Oct 25, 2024
1 parent 08e9b43 commit 4eb6114
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions container/容器镜像与加速.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,16 @@
1. 目前(2024-06-14)最新的 OCI 镜像规范为
[v1.1.0](https://opencontainers.org/posts/blog/2024-03-13-image-and-distribution-1-1/),对镜像
加速而言其最大的更新是:增加了 zstd 作为可选压缩算法,其压缩与解压性能相比 gzip 有大幅提升(镜
像越大,提升越大,一个压缩前 9G 的镜像,CPU 性能够的情况下 zstd 解压时间只有 gzip 的 1/4,很夸张)。
像越大,提升越大,一个压缩前 9G 的镜像,CPU 性能够的情况下 zstd 解压时间只有 gzip 的 1/4,很夸
张)。

我简单调查了当前使用最广泛的 buildkit, docker, containerd 以及云厂商容器仓库对各镜像规范的支持情况,
发现目前 OCI 镜像的支持是最好的,另外虽然 OCI V1.1 才发布没几个月,但 zstd 草案在 2021 年就已经合并
到了 OCI 规范仓库中,各大工具也很早就陆续支持了 zstd 压缩镜像:

> 注:旧的 docker 镜像采用 gzip 压缩,拉镜像时会用 pigz 并行解压。但是 gzip 的压缩率比 zstd 差非常
> 多,而且在多核场景下,我实测 pigz 的并行解压性能也远不如 pzstd(zstd 的并行版本).
1. oci:
1. [Formalize support for zstd compression: v1.1.0](https://github.com/opencontainers/image-spec/issues/803)
1. containerd:
Expand All @@ -45,8 +49,8 @@
1. [v23.0.0(2023-02-02)](https://github.com/moby/moby/releases/tag/v23.0.0) 添加了拉取 zstd 压缩
镜像的支持

Docker 对 zstd 的支持是最晚的,去年的 v23 才弄出来,而且 docker 貌似用不了 oci 格式的 zstd 镜像。
所以总的来看,选择用 buildkit 0.10.0 + containerd v1.5.0 + oci zstd 压缩镜像是个不错的选择,示例:
Docker 对 zstd 的支持是最晚的,去年的 v23 才弄出来,而且 docker 貌似用不了 oci 格式的 zstd 镜像。
以总的来看,选择用 buildkit 0.10.0 + containerd v1.5.0 + oci zstd 压缩镜像是个不错的选择,示例:

```bash
# buildkit
Expand Down Expand Up @@ -105,4 +109,3 @@ docker buildx imagetools \
1. P2P 镜像分发: [nydus-snapshotter](https://github.com/containerd/nydus-snapshotter)
2. Lazy Pulling: [stargz-snapshotter](https://github.com/containerd/stargz-snapshotter)
1. Lazy Pulling 感觉也比较成熟了,可以测试下看看效果。

0 comments on commit 4eb6114

Please sign in to comment.