Description
I am trying to run a Rust application compiled to WASM inside Docker using the WasmEdge runtime. I have enabled the "Use containerd for pulling and storing images" and "Enable Wasm" features in Docker Desktop.
The Problem:
When I run my container, the command executes without error, but the container never starts. It remains in the Created status. To rule out my own code, I tried the official Docker Wasm Technical Preview example(https://www.docker.com/blog/docker-wasm-technical-preview/), and it fails in the exact same way.
Environment:
My Rust Setup (Context):
My own application works perfectly when running locally using the wasmedge CLI on Windows. The issue only happens inside Docker.
Reproduce
Reproduction Steps:
-
Run the official example image:
Bash
docker run -dp 8080:8080 --name=wasm-example --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm32 michaelirwin244/wasm-example
-
Output:
Plaintext
(Container ID is returned, e.g., aca36...)
-
Check status:
Bash
Result: The container status is Created. It never changes to Up, and docker logs wasm-example returns nothing.
Expected behavior
The container should successfully transition from Created to Up (or Exited with code 0), and I should see the application's output (e.g., 'Hello world') in the console logs. The shim process should not panic.
docker version
Client:
Version: 29.1.2
API version: 1.52
Go version: go1.25.5
Git commit: 890dcca
Built: Tue Dec 2 21:57:33 2025
OS/Arch: windows/amd64
Context: desktop-linux
Server: Docker Desktop 4.54.0 (212467)
Engine:
Version: 29.1.2
API version: 1.52 (minimum version 1.44)
Go version: go1.25.5
Git commit: de45c2a
Built: Tue Dec 2 21:55:26 2025
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v2.2.0
GitCommit: 1c4457e00facac03ce1d75f7b6777a7a851e5c41
runc:
Version: 1.3.4
GitCommit: v1.3.4-0-gd6d73eb8
docker-init:
Version: 0.19.0
GitCommit: de40ad0
docker info
Client:
Version: 29.1.2
Context: desktop-linux
Debug Mode: false
Plugins:
ai: Docker AI Agent - Ask Gordon (Docker Inc.)
Version: v1.17.0
Path: C:\Program Files\Docker\cli-plugins\docker-ai.exe
buildx: Docker Buildx (Docker Inc.)
Version: v0.30.1-desktop.1
Path: C:\Program Files\Docker\cli-plugins\docker-buildx.exe
compose: Docker Compose (Docker Inc.)
Version: v2.40.3-desktop.1
Path: C:\Program Files\Docker\cli-plugins\docker-compose.exe
debug: Get a shell into any image or container (Docker Inc.)
Version: 0.0.45
Path: C:\Program Files\Docker\cli-plugins\docker-debug.exe
desktop: Docker Desktop commands (Docker Inc.)
Version: v0.2.0
Path: C:\Program Files\Docker\cli-plugins\docker-desktop.exe
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.31
Path: C:\Program Files\Docker\cli-plugins\docker-extension.exe
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v1.4.0
Path: C:\Program Files\Docker\cli-plugins\docker-init.exe
mcp: Docker MCP Plugin (Docker Inc.)
Version: v0.28.0
Path: C:\Program Files\Docker\cli-plugins\docker-mcp.exe
model: Docker Model Runner (Docker Inc.)
Version: v1.0.4
Path: C:\Users\ericb\.docker\cli-plugins\docker-model.exe
offload: Docker Offload (Docker Inc.)
Version: v0.5.29
Path: C:\Program Files\Docker\cli-plugins\docker-offload.exe
pass: Docker Pass Secrets Manager Plugin (beta) (Docker Inc.)
Version: v0.0.15
Path: C:\Program Files\Docker\cli-plugins\docker-pass.exe
sandbox: Docker Sandbox (Docker Inc.)
Version: v0.6.0
Path: C:\Program Files\Docker\cli-plugins\docker-sandbox.exe
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.0
Path: C:\Program Files\Docker\cli-plugins\docker-sbom.exe
scout: Docker Scout (Docker Inc.)
Version: v1.18.3
Path: C:\Program Files\Docker\cli-plugins\docker-scout.exe
Server:
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 29.1.2
Storage Driver: overlayfs
driver-type: io.containerd.snapshotter.v1
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
CDI spec directories:
/etc/cdi
/var/run/cdi
Discovered Devices:
cdi: docker.com/gpu=webgpu
Swarm: inactive
Runtimes: io.containerd.runc.v2 nvidia runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 1c4457e00facac03ce1d75f7b6777a7a851e5c41
runc version: v1.3.4-0-gd6d73eb8
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.6.87.2-microsoft-standard-WSL2
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64
CPUs: 32
Total Memory: 31.24GiB
Name: docker-desktop
ID: d76d8b32-7011-4711-a970-6dc0800e3095
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
No Proxy: hubproxy.docker.internal
Labels:
com.docker.desktop.address=npipe://\\.\pipe\docker_cli
Experimental: false
Insecure Registries:
hubproxy.docker.internal:5555
::1/128
127.0.0.0/8
Live Restore Enabled: false
Firewall Backend: iptables
Diagnostics ID
CB612CC5-C92B-4F59-9B0A-EC3DBDA2349D/20260108155605
Additional Info
I inspected the Docker Desktop backend logs (AppData\Local\Docker\log\host\com.docker.backend.exe.log) and found that the containerd-shim-wasmedge-v1 process is panicking immediately.
It seems Docker is trying to call the shim with a -info flag that the binary does not recognize.
Log Snippet:
[2025-12-15T08:19:39.887Z][com.docker.backend.exe.wsl] {"component":"kmsg","level":"info","msg":"containerd-shim-wasmedge-v1: containerd-shim: potentially unexpected fatal signal 6.","time":"2025-12-15T08:19:39.887885170Z"}
[2025-12-15T08:19:39.918Z][com.docker.backend.exe.wsl] {"component":"containerd","level":"info","msg":"{\"error\":\"failed to run [/var/lib/wasm/runtimes/containerd-shim-wasmedge-v1 -info]: signal: aborted (core dumped) (stderr: \\\"thread 'main' panicked at /home/runner/work/containerd-wasi-shims/containerd-wasi-shims/crates/containerd-shim-wasm/src/sandbox/cli.rs:50:38:\\\\ncalled `Result::unwrap()` on an `Err` value: InvalidArgument(\\\\\\\"flag provided but not defined: -info\\\\\\\")\\\\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\\\\n\\\")\",\"level\":\"error\",\"msg\":\"failed to load runtime info\",\"runtime\":\"io.containerd.wasmedge.v1\"}
I have completely uninstalled and reinstalled Docker Desktop twice to rule out any corrupted files or bad configuration states.
Description
I am trying to run a Rust application compiled to WASM inside Docker using the WasmEdge runtime. I have enabled the "Use containerd for pulling and storing images" and "Enable Wasm" features in Docker Desktop.
The Problem:
When I run my container, the command executes without error, but the container never starts. It remains in the Created status. To rule out my own code, I tried the official Docker Wasm Technical Preview example(https://www.docker.com/blog/docker-wasm-technical-preview/), and it fails in the exact same way.
Environment:
OS: Windows 11
Docker Desktop: v4.54.0 (212467)
Settings: Wasm & Containerd features enabled.
My Rust Setup (Context):
My own application works perfectly when running locally using the wasmedge CLI on Windows. The issue only happens inside Docker.
Target:
wasm32-wasip1(Rust 1.84)Dockerfile:
Dockerfile
Build & Run Command:
PowerShell
Reproduce
Reproduction Steps:
Run the official example image:
Bash
Output:
Plaintext
Check status:
Bash
Result: The container status is
Created. It never changes toUp, anddocker logs wasm-examplereturns nothing.Expected behavior
The container should successfully transition from Created to Up (or Exited with code 0), and I should see the application's output (e.g., 'Hello world') in the console logs. The shim process should not panic.
docker version
Client: Version: 29.1.2 API version: 1.52 Go version: go1.25.5 Git commit: 890dcca Built: Tue Dec 2 21:57:33 2025 OS/Arch: windows/amd64 Context: desktop-linux Server: Docker Desktop 4.54.0 (212467) Engine: Version: 29.1.2 API version: 1.52 (minimum version 1.44) Go version: go1.25.5 Git commit: de45c2a Built: Tue Dec 2 21:55:26 2025 OS/Arch: linux/amd64 Experimental: false containerd: Version: v2.2.0 GitCommit: 1c4457e00facac03ce1d75f7b6777a7a851e5c41 runc: Version: 1.3.4 GitCommit: v1.3.4-0-gd6d73eb8 docker-init: Version: 0.19.0 GitCommit: de40ad0docker info
Diagnostics ID
CB612CC5-C92B-4F59-9B0A-EC3DBDA2349D/20260108155605
Additional Info
I inspected the Docker Desktop backend logs (
AppData\Local\Docker\log\host\com.docker.backend.exe.log) and found that thecontainerd-shim-wasmedge-v1process is panicking immediately.It seems Docker is trying to call the shim with a
-infoflag that the binary does not recognize.Log Snippet:
I have completely uninstalled and reinstalled Docker Desktop twice to rule out any corrupted files or bad configuration states.