agent/skills/tools/podman/SKILL.md
Manages containers, builds images, configures pods and networks with Podman. Use when running containers, creating Containerfiles, grouping services in pods, or managing container resources.
npx skillsauth add knoopx/pi podmanInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Rootless, daemonless container engine. Commands mirror Docker — substitute podman for docker.
podman run -d --name my-app alpine sleep 1000 # Detached container
podman ps -a # List all containers (including stopped)
podman logs my-app # View logs
podman exec my-app ls /app # Run command inside container
podman stop my-app && podman rm my-app # Stop and remove
For long-running services, use -d. For interactive sessions in headless environments: tmux new -d 'podman run -it --name my-app alpine sh'. Use -f with rm/rmi/prune to skip prompts.
podman build -t my-image . # Reads Containerfile (or Dockerfile)
podman images # List local images
podman rmi my-image # Remove image
Prefer Containerfile over Dockerfile — it's the OCI convention.
Pods group containers so they communicate over localhost without network configuration:
podman pod create --name my-stack -p 8080:80
podman run -d --pod my-stack --name web nginx
podman run -d --pod my-stack --name api my-api-image
# web and api share localhost — api reaches nginx at localhost:80
# Custom network
podman network create my-network
podman run -d --network my-network --name web nginx
# Secrets as environment variables
echo "my-secret" | podman secret create my-secret -
podman run --secret my-secret,type=env,target=MY_SECRET alpine env
podman run -d \
--health-cmd "curl -f http://localhost/ || exit 1" \
--health-interval 30s \
--name web nginx
podman inspect web --format '{{.State.Health.Status}}'
podman compose up -d # Docker Compose compatibility
podman generate kube my-pod > pod.yaml # Generate K8s manifest
podman kube play pod.yaml # Run K8s manifest
podman system prune -f # Remove stopped containers, unused images
podman system df # Show disk usage
--userns=keep-idContainerfile as the default build file nametools
Inform the user what is happening — skip passive lookups
development
Renders markdown to self-contained HTML with a custom dark stylesheet and opens in browser. Use when previewing markdown documents, generating styled HTML from README or report files.
testing
Programmatic hunk selection for Jujutsu — split, commit, or squash specific hunks without interactive prompts. Use when making partial commits or selective squashes.
content-media
Manage version control with Jujutsu (jj) — no staging area, immediate changes, smart rebasing. Use when navigating history, squashing, or pushing to Git remotes.