Container Engine
Dockflow supports Docker (default) and Podman as container engines for building and distributing images.
Configuration
# .dockflow/config.yml
container_engine: podman| Field | Type | Description | Default |
|---|---|---|---|
container_engine | "docker" | "podman" | Engine used for building and pushing images | Auto-detected |
When omitted, Dockflow auto-detects the engine on the remote server. If podman is found, it’s used automatically — otherwise it falls back to docker.
How It Works
The container_engine setting controls build and distribution operations:
- Build:
docker buildorpodman build(local and remote) - Save/Load:
docker save | docker loadorpodman save | podman load - Registry:
docker login/pushorpodman login/push
Podman is CLI-compatible with Docker for these operations, so your docker-compose.yml and Dockerfiles work as-is.
k3s and containerd
When using orchestrator: k3s, images are always imported via k3s ctr -n k8s.io images import (containerd) regardless of the build engine. You can build with Docker or Podman locally, and Dockflow handles the transfer to containerd on the k3s node.
# With Docker + k3s:
docker save myapp:1.0 | ssh node "sudo k3s ctr -n k8s.io images import -"
# With Podman + k3s:
podman save myapp:1.0 | ssh node "sudo k3s ctr -n k8s.io images import -"When to Use Podman
- Rootless builds (no Docker daemon required)
- Environments where Docker is not installed or not allowed
- OCI-native workflows
Podman support applies to the build/distribution pipeline only. The orchestrator (swarm or k3s) is configured separately via the orchestrator field.
Example
# .dockflow/config.yml
project_name: "my-app"
orchestrator: k3s
container_engine: podman
# Build with Podman, deploy to k3s via containerd