Docker CLI Support
Stackie’s daemon (stackied) speaks the Docker Engine API v1.43 on a local socket.
Any tool that talks to Docker — the CLI, Compose, Lazydocker,
VS Code Dev Containers — should work with Stackie.
You just tell it where the socket is.
Socket Location
The socket path differs by platform:
| Platform | Socket |
|---|---|
| macOS / Linux | ~/.stackie/stackied.sock |
| Windows | \\.\pipe\stackie_daemon |
The socket is created when the daemon starts (stackie up or stackied directly)
and removed on clean shutdown.
Setup: No Existing Docker Install
If Docker Desktop is not installed, the simplest approach is to make
$DOCKER_HOST point at the stackied socket permanently. Your shell then treats
it as the default Docker endpoint — no flags, no per-command overrides.
macOS / Linux
Add to your shell profile (.zshrc, .bashrc, .profile, etc.):
export DOCKER_HOST="unix://$HOME/.stackie/stackied.sock"
Reload your shell, then verify:
docker ps
docker version
Windows (PowerShell)
Add to your PowerShell profile ($PROFILE):
$env:DOCKER_HOST = "npipe:////./pipe/stackie_daemon"
Or set it permanently via System Properties → Environment Variables:
DOCKER_HOST = npipe:////./pipe/stackie_daemon
Verify in a new terminal:
docker ps
docker version
Setup: Side-by-Side with Docker Desktop
If you have Docker Desktop installed and want to keep using it alongside
Stackie, don’t change $DOCKER_HOST globally. Instead, scope the override to
the commands or terminal session where you want to target Stackie.
Per-session (recommended)
Open a terminal dedicated to your Stackie project and export DOCKER_HOST
only for that session:
# macOS / Linux
export DOCKER_HOST="unix://$HOME/.stackie/stackied.sock"
# Then run any docker command normally in this terminal
docker ps
docker compose up
# Windows
$env:DOCKER_HOST = "npipe:////./pipe/stackie_daemon"
docker ps
When you close the terminal the override disappears. Your other terminals still talk to Docker Desktop.
Per-command
Pass --host directly to any Docker command:
# macOS / Linux
docker --host "unix://$HOME/.stackie/stackied.sock" ps
docker --host "unix://$HOME/.stackie/stackied.sock" compose up
# Windows
docker --host "npipe:////./pipe/stackie_daemon" ps
This is useful in scripts or Makefiles where you want an explicit, portable
reference to the Stackie socket regardless of what $DOCKER_HOST is set to.
Docker CLI
The Docker CLI picks up $DOCKER_HOST automatically. Once set (or with
--host), all standard commands work:
docker ps # list running containers (Stackie blocks appear here)
docker logs stackie.postgres # stream logs from a running block
docker exec -it stackie.postgres psql -U postgres
docker pull postgres:16 # pull triggers a block install via Stackie supercache
Docker Compose
Both docker compose (plugin) and docker-compose (standalone) respect
$DOCKER_HOST and --host. With the variable set:
# Run a compose file against Stackie instead of Docker Desktop
docker compose up
# Or explicitly:
docker compose --host "unix://$HOME/.stackie/stackied.sock" up
Other Docker-Compatible Tools
Most tools that use the Docker socket read $DOCKER_HOST automatically:
| Tool | Works via $DOCKER_HOST | Notes |
|---|---|---|
| docker compose | Yes | Works with supported blocks |
| Lazydocker | Yes | Set DOCKER_HOST before launching |
| VS Code Dev Containers | Yes | Set in settings.json or terminal profile |
| Podman Desktop | Partial | Use socket path directly in Podman config |