원클릭으로
container-ops
Podman container operations best practices and patterns
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Podman container operations best practices and patterns
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Cloud Build CI/CD patterns with Terraform-via-Cloud-Build workflows
Issue-driven DevOps workflow with pre-flight checks, workspace isolation, and PR lifecycle
Google Cloud Platform operations patterns and best practices
Best practices for creating and reviewing pull requests
Create consistent releases and changelogs using semantic versioning and conventional commits
Makefile and modular scripts conventions for DevOps projects
| name | container-ops |
| description | Podman container operations best practices and patterns |
Use this skill when building container images, troubleshooting container issues, or setting up containerized development environments.
Podman is a drop-in replacement for Docker with key differences:
| Feature | Podman | Docker |
|---|---|---|
| Daemon | Daemonless | Requires dockerd |
| Root | Rootless by default | Root by default |
| Compose | podman-compose or podman compose | docker compose |
| Systemd | Native systemd integration | Requires configuration |
| Pods | Native pod support (like K8s) | Not supported |
| Socket | podman.sock | docker.sock |
# Stage 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --production=false
COPY . .
RUN npm run build
# Stage 2: Runtime
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
USER node
CMD ["node", "dist/index.js"]
.containerignore / .dockerignore to exclude unnecessary fileslatest tag)USER node or USER 1000COPY instead of ADD (unless extracting archives)podman image scan <image>-alpine, -slim, distroless)# Build
podman build -t myapp:latest .
# Run (detached, with port mapping)
podman run -d --name myapp -p 8080:3000 myapp:latest
# View logs
podman logs -f myapp
# Execute command in running container
podman exec -it myapp sh
# Stop and remove
podman stop myapp && podman rm myapp
# List images and containers
podman images
podman ps -a
# Prune unused resources
podman system prune -a
Pods group containers that share network and IPC namespaces (similar to Kubernetes pods):
# Create a pod
podman pod create --name mystack -p 8080:80
# Add containers to the pod
podman run -d --pod mystack --name web nginx
podman run -d --pod mystack --name api myapi:latest
# Manage the pod
podman pod ps
podman pod stop mystack
podman pod rm mystack
| Problem | Solution |
|---|---|
| Permission denied | Check rootless setup: podman unshare cat /proc/self/uid_map |
| Image pull fails | Check registry config: cat /etc/containers/registries.conf |
| Container won't start | Check logs: podman logs <container> |
| Port already in use | Find process: ss -tlnp sport = :<port> |
| Disk space full | Clean up: podman system prune -a --volumes |
cicd/, not at the project root.