关于 container-orchestration
为容器化应用提供 Docker 和 Kubernetes 模式的技能,涵盖配置建议、命令参考、模板及配套资源,适用于部署和运维工作。
主要功能
- 01Dockerfile 最佳实践
- 02Docker Compose 配置示例
- 03Kubernetes Deployment、Service 和 Ingress 示例
- 04kubectl 命令参考
- 05模板与镜像构建推送脚本
适用场景
- 01编写面向生产环境的 Dockerfile
- 02使用 Docker Compose 配置服务
- 03创建 Kubernetes 清单
- 04检查或重启 Kubernetes 工作负载
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 0xdarkmatter/ claude-mods --skill container-orchestration安装后在 Claude Code 中输入/container-orchestration确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/docker-compose.template.ymlDockerfile.templatereferences/dockerfile-patterns.mdecs-fargate.mdhelm-patterns.mdk8s-manifests.mdscripts/build-push.shtests/run.sh详细介绍
容器编排
信息已核实,截至 2026-07。
Docker 和 Kubernetes 容器化应用模式。
Dockerfile 最佳实践
# Use specific version, not :latest
FROM python:3.11-slim AS builder
# Set working directory
WORKDIR /app
# Copy dependency files first (better caching)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY src/ ./src/
# Production stage (multi-stage build)
FROM python:3.11-slim
WORKDIR /app
# Create non-root user
RUN useradd --create-home appuser
USER appuser
# Copy from builder
COPY --from=builder /app /app
# Set environment
ENV PYTHONUNBUFFERED=1
# Health check
HEALTHCHECK --interval=30s --timeout=3s \
CMD curl -f http://localhost:8000/health || exit 1
EXPOSE 8000
CMD ["python", "-m", "uvicorn", "src.main:app", "--host", "0.0.0.0"]
Dockerfile 规则
DO:
- Use specific base image versions
- Use multi-stage builds
- Run as non-root user
- Order commands by change frequency
- Use .dockerignore
- Add health checks
DON'T:
- Use :latest tag
- Run as root
- Copy unnecessary files
- Store secrets in image
- Install dev dependencies in production
Docker Compose
# docker-compose.yml
version: "3.9"
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgres://user:pass@db:5432/app
depends_on:
db:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
db:
image: postgres:15-alpine
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
POSTGRES_DB: app
healthcheck:
test: ["CMD-SHELL", "pg_isready -U user -d app"]
interval: 10s
timeout: 5s
retries: 5
volumes:
postgres_data:
Kubernetes 基础知识
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
labels:
app: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: app
image: myapp:1.0.0
ports:
- containerPort: 8000
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
httpGet:
path: /ready
port: 8000
initialDelaySeconds: 5
periodSeconds: 10
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: app-secrets
key: database-url
Service
apiVersion: v1
kind: Service
metadata:
name: app-service
spec:
selector:
app: myapp
ports:
- port: 80
targetPort: 8000
type: ClusterIP
Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
rules:
- host: app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: app-service
port:
number: 80
kubectl 快速参考
| 命令 | 描述 |
|---|---|
kubectl get pods | 列出 Pod |
kubectl logs <pod> | 查看日志 |
kubectl exec -it <pod> -- sh | 进入 Pod 的 Shell |
kubectl apply -f manifest.yaml | 应用配置 |
kubectl rollout restart deployment/app | 重启 Deployment |
kubectl rollout status deployment/app | 检查发布状态 |
kubectl describe pod <pod> | 调试 Pod |
kubectl port-forward svc/app 8080:80 | 本地端口转发 |
更多资源
./references/dockerfile-patterns.md- 高级 Dockerfile 技术./references/k8s-manifests.md- 完整的 Kubernetes 清单示例./references/helm-patterns.md- Helm chart 结构和取值./references/ecs-fargate.md- AWS Fargate 上的 Amazon ECS(任务定义、服务、awsvpc 网络、IAM 角色、密钥、扩缩容、ALB/NLB、ECS 与 Kubernetes 对比)
脚本
./scripts/build-push.sh- 构建并推送 Docker 镜像
资源文件
./assets/Dockerfile.template- 生产环境 Dockerfile 模板./assets/docker-compose.template.yml- Compose 入门模板
评论
支持 Markdown