Derek's Blog

containerd Proxy Plugins

containerd internals

Introduction

In a previous post we went through how plugins work in containerd. Typically extending containerd with plugins requires compiling containerd with the new plugin imported. Proxy plugins allow taking advantage of containerd’s stable API to configure a plugin which proxies through rpc to another running process. This is easy in containerd since the same interface is used on the client side as the server side, in the proxy case the server is just using a client instance of an interface.


Plugins in containerd

containerd internals

Introduction

Creating plugins and providing extensible interfaces is essential to an open source project’s success. While open source makes it easy to fork code and make whatever changes you want, the reality is most people do not want to create and maintain a fork. The most successful projects have a large community with many individuals collaborating together on a single codebase. Still, not everyone has the same requirements and or will deploy the same bits to production though. The early days of Docker took a “batteries included but removable” approach in which the default build is likely the most popular, but there are plenty of ways to customize the software to your own environment.


New series on containerd

containerd internals

This month a few containerd maintainers will be blogging a series about containerd internals and components we think are interesting. I will post the ones I write on this blog but also follow on Bluesky at https://containerd.dev/bsky to not miss out.