Open-Source Wikis

/

containerd

/

Plugins

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/          TransferPlugin

How 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:

  1. Calls LoadPlugins which asks the plugin registry for the topologically sorted list.
  2. Filters out config.DisabledPlugins and applies any V2DisabledFilter rewrites.
  3. Walks the list and calls each plugin's InitFn with an InitContext carrying its root/state directories and access to already-initialized plugins.
  4. Any plugin of type ServerPlugin is appended to the daemon's servers slice and Started 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/plugins

The 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.

Plugins – containerd wiki | Factory