diff --git a/pkg/wrappers/containerd.go b/pkg/wrappers/containerd.go
index d3ffd1f16239948b680fb7c3ec96f92c3c4ee788..7b6474d16f9b0f927970892e9bd99c1a81e663df 100644
--- a/pkg/wrappers/containerd.go
+++ b/pkg/wrappers/containerd.go
@@ -2,6 +2,7 @@ package wrappers
 
 import (
 	"context"
+	"strings"
 
 	"github.com/containerd/containerd/cmd/containerd/command"
 	_ "github.com/containerd/containerd/diff/walking/plugin"
@@ -11,6 +12,7 @@ import (
 	_ "github.com/containerd/containerd/metadata/plugin"
 	_ "github.com/containerd/containerd/metrics/cgroups"
 	_ "github.com/containerd/containerd/pkg/cri"
+	"github.com/containerd/containerd/plugin"
 	_ "github.com/containerd/containerd/runtime/restart/monitor"
 	_ "github.com/containerd/containerd/runtime/v2"
 	_ "github.com/containerd/containerd/runtime/v2/runc/options"
@@ -34,8 +36,15 @@ import (
 func Containerd(ctx context.Context, args []string) (context.Context, error) {
 	app := command.App()
 	args = append([]string{"containerd"}, args...)
-	newCtx, cancel := context.WithCancel(ctx)
+	// Disable ttrpc plugins when running the main server
+	// These are registered by there init() because we build a single binary with
+	// both containerd and its shim
+	plugins := plugin.Graph(func(*plugin.Registration) bool { return false })
+	for _, plug := range plugins {
+		plug.Disable = strings.HasPrefix(plug.URI(), "io.containerd.ttrpc")
+	}
 
+	newCtx, cancel := context.WithCancel(ctx)
 	go func() {
 		app.Run(args)
 		cancel()