for-linux icon indicating copy to clipboard operation
for-linux copied to clipboard

Docker Engine on Ubuntu 24.04: Error response from daemon: failed to create task for container: Unimplemented: failed to start shim: start failed: unsupported shim version (3): not implemented

Open francisguillier opened this issue 9 months ago • 6 comments

I Deployed Docker Engine on Ubuntu 24.04 using instructions documented here: https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository (install using the apt repository)

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin works fine.

But when I run the hello world test, I get:

$ sudo docker run hello-world
docker: Error response from daemon: failed to create task for container: Unimplemented: failed to start shim: start failed: unsupported shim version (3): not implemented

Run 'docker run --help' for more information

I tried with different versions of docker-ce and containerd.io and always faced the same issue. It seems that docker engine is not working globally on Ubuntu 24.04.

francisguillier avatar Apr 23 '25 04:04 francisguillier

Maybe multiple versions of containerd are accidentally scattered across /usr/bin, /usr/local/bin, etc.?

It seems that docker engine is not working globally on Ubuntu 24.04.

Works for me.

$ dpkg -l | egrep '(docker|containerd)'
ii  containerd.io                   1.7.27-1                                arm64        An open and reliable container runtime
ii  docker-buildx-plugin            0.23.0-1~ubuntu.24.04~noble             arm64        Docker Buildx cli plugin.
ii  docker-ce                       5:28.1.1-1~ubuntu.24.04~noble           arm64        Docker: the open-source application container engine
ii  docker-ce-cli                   5:28.1.1-1~ubuntu.24.04~noble           arm64        Docker CLI: the open-source application container engine
ii  docker-ce-rootless-extras       5:28.1.1-1~ubuntu.24.04~noble           arm64        Rootless support for Docker.
ii  docker-compose-plugin           2.35.1-1~ubuntu.24.04~noble             arm64        Docker Compose (V2) plugin for the Docker CLI.

AkihiroSuda avatar May 14 '25 06:05 AkihiroSuda

I have same problem!

Honghe0416 avatar May 19 '25 09:05 Honghe0416

me too, and everything returne to normal after upgrading containerd to v2.1.1 (latest release) manually.

qingchuwudi avatar May 25 '25 09:05 qingchuwudi

Ok confirmed on my side too with the following set-up:

  • source linux Gentoo: kernel 6.12.21 (all flags set for docker)
  • docker engine version 28.0.4
  • docker-cli 28.0.4
  • containerd 2.0.5 (hardened)
  • (runc tools 1.2.6)
  • docker-buildx 0.10.4 (out dated)

Apparmor is not activated on this instance. Tested with and without Swarm Mode.

Reinstalling (recompiling) and restarting docker service did not change anything. I can build images but running them is impossible and I observe the same output on any container run:

docker: Error response from daemon: failed to create task for container: Unimplemented: failed to start shim: start failed: unsupported shim version (3): not implemented

Since everything seems to be at latest stable version (linux repo updated on 14th of August 2025) I tried to update only the docker buildx utility to version 0.21.2 and build images with docker buildx build -t ..., this did not work either. Same message.

So I updated containerd as suggested by

  • containerd 2.1.1 (hardened)
  • (runc tools 1.3.0)

Restarted Docker / Rebuild the Image

And running is still not possible: docker: Error response from daemon: failed to create task for container: Unimplemented: failed to start shim: start failed: unsupported shim version (3): not implemented

@qingchuwudi what is the final docker version in the end ? 28.2.2 ?

redotics avatar Aug 18 '25 16:08 redotics

And running is still not possible: docker: Error response from daemon: failed to create task for container: Unimplemented: failed to start shim: start failed: unsupported shim version (3): not implemented

Same error here ...

pchovelon avatar Sep 23 '25 14:09 pchovelon

Error looks to come from containerd; https://github.com/containerd/containerd/blob/148be7d8dea2d1c5d8c12da1cc71c3bfa6a44fa5/core/runtime/v2/shim.go#L222-L234

func parseStartResponse(response []byte) (client.BootstrapParams, error) {
	var params client.BootstrapParams

	if err := json.Unmarshal(response, &params); err != nil || params.Version < 2 {
		// Use TTRPC for legacy shims
		params.Address = string(response)
		params.Protocol = "ttrpc"
		params.Version = 2
	}

	if params.Version > CurrentShimVersion {
		return client.BootstrapParams{}, fmt.Errorf("unsupported shim version (%d): %w", params.Version, errdefs.ErrNotImplemented)
	}

AFAICS, that function would be called when restoring existing shims, parsing a bootstrap.json, or parsing the response when starting an existing shim https://github.com/containerd/containerd/blob/148be7d8dea2d1c5d8c12da1cc71c3bfa6a44fa5/core/runtime/v2/shim_manager.go#L309-L314 https://github.com/containerd/containerd/blob/148be7d8dea2d1c5d8c12da1cc71c3bfa6a44fa5/core/runtime/v2/shim.go#L265-L276

Based on the error, it looks like a shim exists that was created with version 3 (which corresponds with containerd v2 (CurrentShimVersion)), but trying to start the shim with containerd v1; https://github.com/containerd/containerd/blob/148be7d8dea2d1c5d8c12da1cc71c3bfa6a44fa5/core/runtime/v2/shim.go#L182-L183 https://github.com/containerd/containerd/blob/v1.7.28/runtime/v2/shim.go#L211-L222

So, yes, either different versions of containerd are installed on the system and are trying to use shims created by the other version, or a containerd v2 was installed and state was found that containerd v1 tried to restore?

thaJeztah avatar Sep 23 '25 14:09 thaJeztah