원클릭으로
docker-helper
Docker and container orchestration expert for development and deployment
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Docker and container orchestration expert for development and deployment
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Automated API testing assistant for REST and GraphQL endpoints
Backend development expert specializing in API design, microservices, database architecture, and system performance. Use when working with APIs, databases, backend systems, or when the user mentions server-side development, microservices, or performance optimization.
Expert in cloud infrastructure design, deployment, and management across AWS, Azure, and GCP
Performs comprehensive code reviews with focus on best practices, security, and performance
内容营销专家,精通内容策略、文案创作、社交媒体和邮件营销
Demonstrates forked context execution. This skill runs in an isolated sub-agent context with its own conversation history and tool access.
| name | docker-helper |
| description | Docker and container orchestration expert for development and deployment |
| version | 2.3.0 |
| author | Infrastructure Team <infra@example.com> |
| tags | ["docker","containers","devops","deployment"] |
| dependencies | ["kubernetes-expert"] |
You are a Docker and containerization expert. Help with Dockerfile creation, optimization, and troubleshooting.
# Preferred: Use specific version tags
FROM python:3.11-slim
# Avoid: Using 'latest' tag
FROM python:latest # ❌ Unpredictable
# Good: Alpine for small images
FROM node:20-alpine
# Good: Distroless for minimal attack surface
FROM gcr.io/distroless/python3-debian11
# ❌ Bad: Too many layers
RUN apt-get update
RUN apt-get install -y git
RUN apt-get install -y curl
RUN apt-get install -y vim
# ✅ Good: Combined commands
RUN apt-get update && apt-get install -y \
git \
curl \
vim \
&& rm -rf /var/lib/apt/lists/*
# Build stage
FROM rust:1.75 as builder
WORKDIR /app
COPY . .
RUN cargo build --release
# Runtime stage
FROM debian:bookworm-slim
COPY --from=builder /app/target/release/myapp /usr/local/bin/myapp
CMD ["myapp"]
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
environment:
- NODE_ENV=development
depends_on:
- db
- redis
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: myapp
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
postgres_data:
version: '3.8'
services:
app:
image: myapp:latest
restart: always
environment:
- NODE_ENV=production
- DATABASE_URL=postgresql://user:pass@db:5432/myapp
depends_on:
- db
deploy:
replicas: 3
resources:
limits:
cpus: '0.5'
memory: 512M
db:
image: postgres:15-alpine
restart: always
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
- POSTGRES_HOST_AUTH_METHOD=trust
volumes:
postgres_data:
# Shell form (uses shell, variable expansion)
CMD node server.js
# Exec form (no shell, direct execution)
CMD ["node", "server.js"]
# ENTRYPOINT vs CMD
ENTRYPOINT ["python"]
CMD ["app.py"] # Can be overridden
# Create if not exists
WORKDIR /app
# Better than RUN mkdir /app && cd /app
# Create non-root user
RUN groupadd -r appuser && useradd -r -g appuser appuser
USER appuser
# Good practice: Don't run as root
# COPY: Simple file copying
COPY package.json .
# ADD: Extra features (URLs, auto-extract)
ADD https://example.com/file.tar.gz /tmp/
# Prefer COPY for local files
# Use ADD only for URLs or tar extraction
node_modules
npm-debug.log
.git
.env
*.md
tests/
.coverage
ARG VERSION=1.0
ARG BUILD_DATE
ENV APP_VERSION=$VERSION
ENV BUILD_DATE=$BUILD_DATE
LABEL version=$VERSION
LABEL build-date=$BUILD_DATE
# Container logs
docker logs <container-id>
# Follow logs
docker logs -f <container-id>
# Last N lines
docker logs --tail 100 <container-id>
# Execute command in container
docker exec -it <container-id> sh
# Inspect container
docker inspect <container-id>
# View resource usage
docker stats
# Remove stopped containers
docker container prune
# Remove unused images
docker image prune -a
# Remove unused volumes
docker volume prune
# Remove all unused resources
docker system prune -a
# Trivy scanner
trivy image myapp:latest
# Docker Scout
docker scout quickview myapp:latest
docker scout cves myapp:latest
# ❌ Don't: Pass secrets in environment
services:
app:
environment:
- API_KEY=secret123
# ✅ Do: Use Docker secrets
services:
app:
secrets:
- api_key
secrets:
api_key:
file: ./secrets/api_key.txt
# Bridge (default)
networks:
default:
driver: bridge
# Host networking (Linux only)
network_mode: host
# No network
network_mode: none
# Custom network
networks:
my_network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD curl -f http://localhost:3000/health || exit 1
services:
app:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 3s
retries: 3
start_period: 10s
# Use BuildKit for faster builds
export DOCKER_BUILDKIT=1
docker build .
# Copy dependency files first
COPY package.json package-lock.json ./
RUN npm install
# Then copy source code
COPY . .
docker build --build-arg BUILDKIT_INLINE_CACHE=1