containerd/containerd
Plugins
This page is the registration-level view of containerd's plugin tree. Most subsystems described under Systems are themselves implemented as one or more plugins; this page enumerates them.
Built-in plugins by directory
plugins/
├── content/local/ SnapshotPlugin? no — ContentPlugin (filesystem-backed)
├── cri/
│ ├── images/ CRIServicePlugin (image side)
│ └── runtime/ CRIServicePlugin (runtime side)
├── diff/
│ ├── erofs/ DiffPlugin (apply EROFS layer diffs)
│ ├── lcow/ DiffPlugin (Linux containers on Windows)
│ ├── walking/ DiffPlugin (default tar-walking differ)
│ └── windows/ DiffPlugin (Windows layer diffs)
├── events/ EventPlugin (event exchange)
├── gc/ GCPlugin (garbage collector scheduler)
├── imageverifier/ ImageVerifierPlugin (binary-dir verifier)
├── leases/ LeasePlugin (lease manager)
├── metadata/ MetadataPlugin (bbolt metadata DB)
├── mount/ MountManagerPlugin (mount-manager)
│ ├── erofs/ MountHandlerPlugin (EROFS mounts)
│ └── fsview/ MountHandlerPlugin (fsview mounts)
├── nri/ NRIApiPlugin (Node Resource Interface adapter)
├── restart/ InternalPlugin (restart-on-exit policy)
├── sandbox/ SandboxControllerPlugin / SandboxStorePlugin
├── server/
│ ├── debug/ ServerPlugin (pprof/introspection socket)
│ ├── grpc/ ServerPlugin (gRPC API socket)
│ ├── internal/ InternalPlugin (tracing pipeline)
│ ├── metrics/ ServerPlugin (Prometheus socket)
│ └── ttrpc/ ServerPlugin (ttrpc API socket)
├── services/ GRPCPlugin / ServicePlugin per service
│ ├── containers/ Containers gRPC service
│ ├── content/ Content gRPC service (over the metadata-wrapped store)
│ ├── diff/ Diff gRPC service
│ ├── events/ Events gRPC service (Subscribe/Publish/Forward)
│ ├── healthcheck/ Health gRPC service
│ ├── images/ Images gRPC service
│ ├── introspection/ Introspection gRPC service (plugins, deprecations)
│ ├── leases/ Leases gRPC service
│ ├── mounts/ Mounts gRPC service
│ ├── namespaces/ Namespaces gRPC service
│ ├── opt/ Optional ServicePlugin: makes /opt/containerd directory available
│ ├── sandbox/ Sandbox gRPC service
│ ├── snapshots/ Snapshots gRPC service
│ ├── streaming/ Streaming gRPC service
│ ├── tasks/ Tasks gRPC service (the meaty one)
│ ├── transfer/ Transfer gRPC service
│ ├── version/ Version gRPC service
│ └── warning/ WarningPlugin (deprecation warnings)
├── snapshots/
│ ├── blockfile/ SnapshotPlugin
│ ├── btrfs/ SnapshotPlugin (Linux only, btrfs build tag)
│ ├── devmapper/ SnapshotPlugin (Linux only, devmapper build tag)
│ ├── erofs/ SnapshotPlugin
│ ├── lcow/ SnapshotPlugin (Windows)
│ ├── native/ SnapshotPlugin
│ ├── overlay/ SnapshotPlugin (default on Linux)
│ └── windows/ SnapshotPlugin (Windows)
├── streaming/ StreamingPlugin
└── transfer/ TransferPluginHow they're loaded
The blank imports in cmd/containerd/builtins/builtins.go (and its _<os>.go siblings) pull in every package whose init() registers a plugin. After main() runs the cli, cmd/containerd/server/server.go:
- Calls
LoadPluginswhich asks the plugin registry for the topologically sorted list. - Filters out
config.DisabledPluginsand applies anyV2DisabledFilterrewrites. - Walks the list and calls each plugin's
InitFnwith anInitContextcarrying its root/state directories and access to already-initialized plugins. - Any plugin of type
ServerPluginis appended to the daemon'sserversslice andStarted at the end.
See Plugin runtime for the full loading flow and proxy plugins for the out-of-process variant.
Listing what's loaded at runtime
ctr plugins ls
# or
curl --unix-socket /run/containerd/debug.sock http://debug/v1/pluginsThe introspection service in plugins/services/introspection/ exposes one record per plugin with its type, id, platforms, exports map, and InitErr field if it failed to load.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.