Container Awesome
Storage, Metadata, Runtime
- CRI
- opencontainers/runcGitHubopencontainers/runcCRI - Container Runtime Interface - 运行时抽象 · kubernetes/cri-api · 抽象容器运行接口 · 先是用于 Kubernetes - 2016-12 v1.5 · 实现 · docker笔记:容器
- google/gvisorGitHubgoogle/gvisor
- Apache-2.0, Go
- Application Kernel for Containers
- runsc
- nvidia-container-runtime
- containers/crunGitHubcontainers/crun
- GPL-2, C
- lightweight
- containers/youkiGitHubcontainers/youki
- Apache-2.0, Rust
- CNI
- Kube-router
- Calico
- Flannel
- CSI
- Daemon - 管理 OCI 容器、镜像
- ContainerD
- docker
- podmanGitHubcontainers/podman
- lxd
- rkt
- Builder
- buildkit笔记buildkitmoby/buildkit · 可单独使用 · docker/buildx · Docker CLI plugin for extended build capabilities with BuildKit · 使用容器方式运行 buildkitd打开:/notes/devops/container/buildkit - docker
- support resetting timestamp for determinism #1058GitHub Issuemoby/buildkit#1058moby/buildkit · 可单独使用 · docker/buildx · Docker CLI plugin for extended build capabilities with BuildKit · 使用容器方式运行 buildkitd笔记:buildkit
- buildah笔记Buildahcontainers/buildah · Buildah and Podman Relationship · Podman 的 build 是 Buildha打开:/notes/devops/container/buildah
- Kaniko笔记Kaniko2025-06 项目已经 archived, 推荐 docker buildkit · fork chainguard-dev/kaniko · GoogleContainerTools/kaniko 是什么? · 构建容器镜像的工具 · 不依赖 Docker,不需要 root 权限打开:/notes/devops/container/kaniko
- genuinetools/imgGitHubgenuinetools/img
- 不需要 dockerd
- 需要更高权限
- 兼容 docker cli
- apkoGitHubchainguard-dev/apkochainguard-dev/apko · Apache-2.0, Go · Build OCI images using APK directly without Dockerfile · 使用 apk 构建 OCI image · 参考笔记:apko
- 声明式
- 基于 alpine apk 逻辑
- 构建依赖 apk - 非 linux 环境需要 vm
- 辅助构建 distroless
- 想要构建项目需要先 source -> apk
- dockerfile
- docker build
- containerfile
- podman build
- buildah
- buildkit笔记buildkitmoby/buildkit · 可单独使用 · docker/buildx · Docker CLI plugin for extended build capabilities with BuildKit · 使用容器方式运行 buildkitd打开:/notes/devops/container/buildkit - docker
- Source to Image
- openshift/source-to-imageGitHubopenshift/source-to-image
- GoogleContainerTools/jibGitHubGoogleContainerTools/jibGoogleContainerTools/jib · tar · docker 要先 load 才能 push · crane 可以直接 push · credential helpers · $XDGRUNTIMEDIR/containers/auth.json笔记:jib
- Java to container
- bazelbuild/bazel笔记Bazelbazelbuild/bazel · 支持多语言 · 支持多平台 · Starlark DSL · reproduce build · remote cache · WebDAV · bazel-remote · remote build · 自行准备环境 - 下载 JDK、下载 Golang SDK 等打开:/notes/dev/build/bazel
- ko笔记kogoogle/ko · Go source to Kubernetes · KODOCKERREPO · KODOCKERREPO=ko.local, -L, --local - 本地,不 push · KOCONFIGPATH=.ko.yaml打开:/notes/languages/go/lib/ko
- Golang to kubernetes
- Skaffold笔记skaffoldsource to kubernetes 工具 · building, pushing, deploying · SKAFFOLDINSECUREREGISTRY · SKAFFOLDDEFAULTREPO · structure-test/test.yaml打开:/notes/devops/kubernetes/dev/skaffold
- buildpack
- Registry Client
- crane笔记cranegoogle/go-containerregistry/cmd/crane · recipes.md · config · arch, os, rootfs, env, cmd, label, created, history · manifest打开:/notes/devops/container/crane
- skopeo笔记skopeocontainers/skopeo · Apache-2.0, Go · $XDGRUNTIMEDIR/containers/auth.json · | env | for | defualt | · | REGISTRYAUTHFILE | --authfile | |打开:/notes/devops/container/skopeo
- regclient/regclientGitHubregclient/regclient
- oras-project/orasGitHuboras-project/orasoras-project/oras · Apache-2.0, Golang · OCI Registry as Storage笔记:oras
- Registry Server
- habor
- nexus
- netvarun/docketGitHubnetvarun/docket
- DOCKEr + torrenT
- docker/docker-credential-helpersGitHubdocker/docker-credential-helpersdocker/docker-credential-helpers · osxkeychain · desktop · pass · docker-credential-ecr-login · docker-credential-gcr · docker-credential-acr-windows笔记:credential helpers
- docker-credential-osxkeychain.
- Web UI
{
"credsStore": "osxkeychain"
}- cri-o
- Container Desktop/VM
- Docker Desktop
- podman machine
- lima-vm/limaGitHublima-vm/limalima-vm/lima · Lima -> Linux on Mac · Linux vm on macOS for running containerd · 基于 Qemu · 文件共享 · 默认 Reverse SSHFS · 可用 virtio-9p-pci - virtfs笔记:lima
- Linux VM on macOS for running containerd
- QEMU+HVF
- lima-vm/sshockerGitHublima-vm/sshocker 文件共享 - 反向 sshfs
- ssh -L
- 基于 lima
- abiosoft/colimaGitHubabiosoft/colimaabiosoft/colima · /.colima/default/ · 实际下载镜像 · https://github.com/abiosoft/alpine-lima/releases/download/colima-v0.4.5-1/alpine-lima-clm-3.16.2-x8664.iso笔记:colima
- Container runtimes on macOS & Linux
- Rancher Desktop
- abiosoft/colimaGitHubabiosoft/colimaabiosoft/colima · /.colima/default/ · 实际下载镜像 · https://github.com/abiosoft/alpine-lima/releases/download/colima-v0.4.5-1/alpine-lima-clm-3.16.2-x8664.iso笔记:colima
- mikrok8s
- minikube
- weaveworks/footlooseGitHubweaveworks/footloose
- Containers that look like Virtual Machines
- GoogleContainerTools/kptGitHubGoogleContainerTools/kpt
- Automate Kubernetes Configuration Editing
- checkpoint-restore/criuGitHubcheckpoint-restore/criu
- GPLv2, C
- application or container live migration, snapshots, remote debugging
Image
- opencontainers/image-specGitHubopencontainers/image-specCRI - Container Runtime Interface - 运行时抽象 · kubernetes/cri-api · 抽象容器运行接口 · 先是用于 Kubernetes - 2016-12 v1.5 · 实现 · docker笔记:容器
- containerd/stargz-snapshotterGitHubcontainerd/stargz-snapshottercontainerd/stargz-snapshotter · eStargz is a lazily-pullable image format · based on google/crfs Container Registry Filesystem笔记:stargz
- fast container image distribution plugin with lazy pulling
- nydus.dev
- OCI tar layer -> Blob+meta
- containerd/nydus-snapshotterGitHubcontainerd/nydus-snapshotter
- containerd snapshotter with data deduplication and lazy loading in P2P
- dragonflyoss/nydusGitHubdragonflyoss/nydus
- based on FUSE,virtiofs
- RAFS v6 - erofs over fscache - Linux 5.19+
- dragonflyoss/Dragonfly2GitHubdragonflyoss/Dragonfly2
- P2P-based file distribution and image acceleration
- d7y.io/blog/2022/06/06/evolution-of-nydus
- dragonflyoss/nydus/docs/nydusify.mdGitHub 文件dragonflyoss/nydus/docs/nydusify.md
- goharbor/acceleration-serviceGitHubgoharbor/acceleration-service
- google/crfsGitHubgoogle/crfs
- CRFS: Container Registry Filesystem
- read-only FUSE
Runtime
- drifting-in-space/spawnerGitHubdrifting-in-space/spawner
- Session-lived containers for advanced browser-based applications.
- indigo-dc/udockerGitHubindigo-dc/udocker
- opencontainers/runtime-spec/implementations.mdGitHub 文件opencontainers/runtime-spec/implementations.md
CLI
- ctr,nerdctlGitHubcontainerd/nerdctlcontainerd/nerdctl · build 依赖 buildctl, containerd笔记:nerdctl -> containerd
- contaiNERD CTL
- crictl -> cri -> containerd
- cri 是 kubelet 接口
工具
- sigstore/cosignGitHubsigstore/cosignsigstore/cosign笔记:cosign
- Container Signing
- plexsystems/sinkerGitHubplexsystems/sinkerplexsystems/sinker · 仓库之间同步镜像笔记:sinker
- 同步镜像
- 使用 github.com/docker/docker/client 操作 docker
- 使用 github.com/google/go-containerregistry 操作 仓库
go install github.com/plexsystems/sinker@latest
sinker pushtarget:
host: mycompany.com
repository: myteam
sources:
- repository: coreos/prometheus-operator
host: quay.io
tag: v0.40.0- crane笔记cranegoogle/go-containerregistry/cmd/crane · recipes.md · config · arch, os, rootfs, env, cmd, label, created, history · manifest打开:/notes/devops/container/crane
- containers/skopeo笔记skopeocontainers/skopeo · Apache-2.0, Go · $XDGRUNTIMEDIR/containers/auth.json · | env | for | defualt | · | REGISTRYAUTHFILE | --authfile | |打开:/notes/devops/container/skopeo
- remote images registries - retrieving information, images, signing content
- oras笔记orasoras-project/oras · Apache-2.0, Golang · OCI Registry as Storage打开:/notes/devops/container/oras
- regclient/regclientGitHubregclient/regclient
- regctl
- regbot
- regsync
- GoogleContainerTools/container-diffGitHubGoogleContainerTools/container-diff
- jwilder/dockerizeGitHubjwilder/dockerize
- 参考
crane copy docker.io/wener/base:3.22 quay.io/wener/base:3.22
skopeo copy docker.io/wener/base:3.22 docker://quay.io/wener/base:3.22
regctl image copy docker.io/wener/base:3.22 quay.io/wener/base:3.22
regctl manifest digest docker.io/wener/base:3.22
# sha256:abcd
regctl manifest get quay.io/wener/base:3.22库
- google/go-containerregistryGitHubgoogle/go-containerregistry
- uber/krakenGitHububer/kraken
- P2P Docker registry capable of distributing TBs of data in seconds
- dragonfly2
- heroku/docker-registry-clientGitHubheroku/docker-registry-client
- Docker Registry HTTP V2
- docs.quay.io/api/swagger
- quay/quayGitHubquay/quay
- Apache-2.0, Python
- distribution/distributionGitHubdistribution/distribution
- registry
- Docker HUB API
curl https://hub.docker.com/v2/repositories/wener/base/tags | jq
# Registry API
curl https://ustc-edu-cn.mirror.aliyuncs.com/v2/wener/base/tags/list | jq -r '.tags | .[]'Build
问题
- 是否需要 Linux 环境
- 是否需要 Privilege 环境
- 是否需要守护进程
- 是否支持跨平台
- Manifest 支持
- 缓存支持
- 易用性
Inspect
- wagoodman/diveGitHubwagoodman/dive
vicanso/divingGitHubvicanso/diving- vicanso/diving-rsGitHubvicanso/diving-rs
- diving.npmtrend.com
- dive web
docker run --rm -it \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 7001:7001 \
--name diving vicanso/divingLearn
关联信息
反向链接、本文链接的其他页面和外部资料。
站内链接
- Bazel笔记 · bazelbuild/bazel
bazelbuild/bazel · 支持多语言 · 支持多平台 · Starlark DSL · reproduce build · remote cache · WebDAV · bazel-remote · remote build · 自行准备环境 - 下载 JDK、下载 Golang SDK 等
- Buildah笔记 · buildah
containers/buildah · Buildah and Podman Relationship · Podman 的 build 是 Buildha
- buildkit笔记 · buildkit
moby/buildkit · 可单独使用 · docker/buildx · Docker CLI plugin for extended build capabilities with BuildKit · 使用容器方式运行 buildkitd
- crane笔记 · crane
google/go-containerregistry/cmd/crane · recipes.md · config · arch, os, rootfs, env, cmd, label, created, history · manifest
- Kaniko笔记 · Kaniko
2025-06 项目已经 archived, 推荐 docker buildkit · fork chainguard-dev/kaniko · GoogleContainerTools/kaniko 是什么? · 构建容器镜像的工具 · 不依赖 Docker,不需要 root 权限
- ko笔记 · ko
google/ko · Go source to Kubernetes · KODOCKERREPO · KODOCKERREPO=ko.local, -L, --local - 本地,不 push · KOCONFIGPATH=.ko.yaml
- oras笔记 · oras
oras-project/oras · Apache-2.0, Golang · OCI Registry as Storage
- skaffold笔记 · Skaffold
source to kubernetes 工具 · building, pushing, deploying · SKAFFOLDINSECUREREGISTRY · SKAFFOLDDEFAULTREPO · structure-test/test.yaml
- skopeo笔记 · skopeo
containers/skopeo · Apache-2.0, Go · $XDGRUNTIMEDIR/containers/auth.json · | env | for | defualt | · | REGISTRYAUTHFILE | --authfile | |
参考资料
GitHub47 条
- regclient/regclientgithub.com/regclient/regclient
- abiosoft/colimagithub.com/abiosoft/colima
- chainguard-dev/apkogithub.com/chainguard-dev/apko
- checkpoint-restore/criugithub.com/checkpoint-restore/criu
- containerd/nerdctlgithub.com/containerd/nerdctl
- containerd/nydus-snapshottergithub.com/containerd/nydus-snapshotter
- containerd/stargz-snapshottergithub.com/containerd/stargz-snapshotter
- containers/crungithub.com/containers/crun
- containers/podmangithub.com/containers/podman
- containers/youkigithub.com/containers/youki
- distribution/distributiongithub.com/distribution/distribution
- distribution/distribution/docs/spec/api.mdgithub.com/distribution/distribution/blob/main/docs/spec/api.md
- docker/docker-credential-helpersgithub.com/docker/docker-credential-helpers
- dragonflyoss/Dragonfly2github.com/dragonflyoss/Dragonfly2
- dragonflyoss/nydusgithub.com/dragonflyoss/nydus
- dragonflyoss/nydus/docs/nydusify.mdgithub.com/dragonflyoss/nydus/blob/master/docs/nydusify.md
- drifting-in-space/spawnergithub.com/drifting-in-space/spawner
- genuinetools/imggithub.com/genuinetools/img
- goharbor/acceleration-servicegithub.com/goharbor/acceleration-service
- google/crfsgithub.com/google/crfs
- google/go-containerregistrygithub.com/google/go-containerregistry
- google/gvisorgithub.com/google/gvisor
- GoogleContainerTools/container-diffgithub.com/GoogleContainerTools/container-diff
- GoogleContainerTools/jibgithub.com/GoogleContainerTools/jib
- GoogleContainerTools/kptgithub.com/GoogleContainerTools/kpt
- heroku/docker-registry-clientgithub.com/heroku/docker-registry-client
- indigo-dc/udockergithub.com/indigo-dc/udocker
- jwilder/dockerizegithub.com/jwilder/dockerize
- lima-vm/limagithub.com/lima-vm/lima
- lima-vm/sshockergithub.com/lima-vm/sshocker
- louislam/dockgegithub.com/louislam/dockge
- moby/buildkit#1058github.com/moby/buildkit/issues/1058
- netvarun/docketgithub.com/netvarun/docket
- opencontainers/image-specgithub.com/opencontainers/image-spec
- opencontainers/runcgithub.com/opencontainers/runc
- opencontainers/runtime-spec/implementations.mdgithub.com/opencontainers/runtime-spec/blob/main/implementations.md
- openshift/source-to-imagegithub.com/openshift/source-to-image
- oras-project/orasgithub.com/oras-project/oras
- plexsystems/sinkergithub.com/plexsystems/sinker
- quay/quaygithub.com/quay/quay
- SelfhostedPro/Yachtgithub.com/SelfhostedPro/Yacht
- sigstore/cosigngithub.com/sigstore/cosign
- uber/krakengithub.com/uber/kraken
- vicanso/divinggithub.com/vicanso/diving
- vicanso/diving-rsgithub.com/vicanso/diving-rs
- wagoodman/divegithub.com/wagoodman/dive
- weaveworks/footloosegithub.com/weaveworks/footloose
其他外链15 条
- 8x40wsit.mirror.aliyuncs.com8x40wsit.mirror.aliyuncs.com/
- cloud.google.com/solutions/best-practices-for-building-containerscloud.google.com/solutions/best-practices-for-building-containers
- d7y.io/blog/2022/06/06/evolution-of-nydusd7y.io/blog/2022/06/06/evolution-of-nydus
- diving.npmtrend.comdiving.npmtrend.com/
- docker.mirrors.ustc.edu.cndocker.mirrors.ustc.edu.cn/
- docs.docker.com/docker-hub/api/latestdocs.docker.com/docker-hub/api/latest
- docs.docker.com/registry/spec/apidocs.docker.com/registry/spec/api
- docs.quay.io/api/swaggerdocs.quay.io/api/swagger
- fogjl973.mirror.aliyuncs.comfogjl973.mirror.aliyuncs.com/
- iximiuz.com/en/posts/implementing-container-runtime-shimiximiuz.com/en/posts/implementing-container-runtime-shim
- nanikgolang.netlify.app/post/containersnanikgolang.netlify.app/post/containers
- nydus.devnydus.dev/
- registry-1.docker.ioregistry-1.docker.io/
- ustc-edu-cn.mirror.aliyuncs.comustc-edu-cn.mirror.aliyuncs.com/
- www.threatstack.com/blog/diving-deeper-into-runtimes-kubernetes-cri-and-shimswww.threatstack.com/blog/diving-deeper-into-runtimes-kubernetes-cri-and-shims