A daemonless, rootless container engine written in Rust
Qcker is a lightweight, high-performance alternative to Docker.
No daemon. No bloat. Just containers.
Production by PaongLabs
- Real MicroVM Backend: Full implementation with vsock host-guest communication, container lifecycle management (create/start/kill/delete), exec support, file operations via vsock, and automatic VM startup
- vsock Protocol: Length-prefixed JSON protocol over vsock for zero-overhead host-guest communication with ping/pong health checks and timeout handling
- Enhanced VmmManager: QEMU process management with serial console logging, KVM detection, version query, and graceful shutdown
- Dracula Theme System: Centralized
theme.rswith full Dracula color palette, status colors, gauge colors, semantic style helpers, and 20+ pre-built style functions - Zero Compiler Warnings: All Rust snake_case, dead_code, unused_import, and clippy warnings resolved across the entire workspace
- Improved Error Handling: All error constructors now follow Rust naming conventions (
snake_case) - TUI Refinements: Status bar uses darker background for visual separation, marketplace uses semantic status colors
- Cleaner Codebase: Removed unused imports, dead code annotated, proper variable scoping
The TUI provides a visual dashboard for managing containers, browsing files, editing configs, and managing extensions with mouse support and auto-refresh.
git clone https://github.com/farhanturu/qcker.git
cd qcker
cargo build --release# Simple command
sudo ./target/release/qcker run --rootfs /path/to/rootfs -- /bin/echo "Hello"
# Interactive shell
sudo ./target/release/qcker run --rootfs /path/to/rootfs -t -- /bin/sh
# With resource limits
sudo ./target/release/qcker run --rootfs /path/to/rootfs \
--cpus 2 --memory 512 --pids-limit 256 \
-- /bin/sh
# With GPU
sudo ./target/release/qcker run --rootfs /path/to/rootfs \
--gpu --vram 1024 \
-- /bin/sh./target/release/qcker- Create, start, stop, kill, delete containers
- List running and stopped containers
- Execute commands inside running containers
- Container logs and state inspection
- Real-time stats (CPU, memory, PIDs)
--cpus <cores>- CPU cores (e.g., 1.5)--memory <MB>- Memory limit--pids-limit <n>- Max processes--gpu- Enable GPU access--vram <MB>- VRAM limit
- Rootless by default
- PID, network, mount, UTS, IPC, cgroup namespace isolation
- Seccomp syscall filtering (BPF-based)
- Capability dropping (all caps removed by default)
- pivot_root container isolation (not chroot)
- Path traversal protection in tar extraction
- Cryptographic ID generation with getrandom
- Unique error codes (Q-C001, Q-I001, etc.)
- Source location tracking
- Suggestions for fixing errors
- JSON output for scripting
- Retryable error detection
- 7 tabs: Containers, Images, Networks, Volumes, Stats, Logs, Extensions
- Browse and edit files inside containers
- Real-time stats with CPU/memory bars
- Dracula-inspired dark theme with semantic color system
- Mouse support (click, scroll)
- Auto-refresh
- Container actions (stop, kill, delete) from TUI
- Vim-style navigation (j/k)
qcker run,qcker ps,qcker images,qcker build,qcker execqcker network,qcker volume,qcker compose,qcker extensionqcker stats,qcker logs,qcker stopqcker system info/prune
| Command | Description |
|---|---|
qcker run |
Run a container |
qcker create |
Create a container |
qcker start |
Start a container |
qcker stop |
Stop a container |
qcker kill |
Kill a container |
qcker delete |
Delete a container |
qcker ps |
List containers |
qcker exec |
Execute in container |
qcker images |
List images |
qcker build |
Build from Dockerfile |
qcker pull |
Pull image from registry |
qcker logs |
View container logs |
qcker stats |
View container stats |
qcker network |
Manage networks |
qcker volume |
Manage volumes |
qcker compose |
Manage compose apps |
qcker extension |
Manage extensions |
qcker system |
System info and prune |
qcker/
├── crates/
│ ├── qcker-cli/ # CLI binary + TUI
│ ├── qcker-runtime/ # OCI runtime (namespaces, cgroups, seccomp)
│ ├── qcker-backend/ # Runtime backend (native, MicroVM)
│ ├── qcker-engine/ # Image, build, network, volume, compose, extension
│ ├── qcker-common/ # Shared utilities
│ ├── qcker-error/ # Error library with codes and suggestions
│ └── qcker-ext-api/ # Extension SDK
└── target/release/qcker # Single binary (~7 MB)
| Backend | Platform | Description |
|---|---|---|
| NativeBackend | Linux | Direct namespace/cgroup usage |
| MicroVmBackend | macOS/Windows | QEMU-based MicroVM |
Backend selection is automatic based on platform.
Qcker includes a real MicroVM backend for running containers on macOS and Windows without a full Docker Desktop installation.
How it works:
- On Linux: Uses native namespaces and cgroups (no VM needed)
- On macOS/Windows: Spawns a minimal MicroVM via QEMU (
qemu-system-x86_64 -machine microvm) - The MicroVM runs a guest agent that listens on vsock port 7421
- Host sends commands via vsock (length-prefixed JSON protocol)
- Container lifecycle: create → start → kill → delete (all via vsock)
- File operations: read/write/list/delete via exec through vsock
- Stats collection: CPU, memory, network, PIDs from guest agent
- Port forwarding: host ports mapped to guest VM ports
- Lazy VM startup: VM starts on first container creation
- Auto-shutdown on backend shutdown with graceful guest agent notification
Protocol:
Host → VM (HostToVm):
ping | container.create | container.start | container.kill
container.delete | container.exec | container.stats | vm.shutdown
VM → Host (VmToHost):
vm.ready | pong | container.created | container.started
container.exited | container.stats | container.log | error
Browse and manage extensions in the TUI Extensions tab.
| Extension | Category | Status |
|---|---|---|
| bridge | network | Built-in |
| overlayfs | storage | Built-in |
| trivy | security | Available |
| cilium | network | Available |
| zfs | storage | Available |
| loki | logging | Available |
| buildkit | build | Available |
Request new extensions: https://github.com/farhanturu/qcker-extensions/issues
| Feature | Docker | Podman | Qcker |
|---|---|---|---|
| Daemon | Yes | No | No |
| Rootless | Optional | Yes | Yes |
| Language | Go | Go | Rust |
| Binary size | 200 MB | 100 MB | ~7 MB |
| TUI | No | No | Yes |
| GPU support | Manual | Manual | Built-in |
| Extensions | Limited | Limited | Full SDK |
| Error codes | No | No | Yes |
| MicroVM | No | No | Yes |
- Linux kernel 5.3+ (for native backend)
- QEMU (for MicroVM backend on macOS/Windows)
- Rust 1.70+ (for building)
cargo build --release # Release build
cargo test # Run tests
cargo clippy # LintApache License 2.0 - see LICENSE
PaongLabs
- GitHub: https://github.com/farhanturu
- Email: paongtech@gmail.com

