| name | container-orchestration |
| description | 容器编排与部署时使用。覆盖 Docker/Docker Compose/K8s/Helm 实操。 |
容器编排与部署(Container Orchestration)
适用场景
- Docker 镜像构建优化
- Docker Compose 本地编排
- Kubernetes 部署配置
- Helm Chart 编写
- 镜像仓库管理
- 容器安全加固
与其他 skill 的分工
| 场景 | 用什么 |
|---|
| 容器构建 / K8s 部署 | 本 skill |
| CI/CD 流水线 | ci-cd-pipeline/ |
| 发布策略(灰度/蓝绿) | release-strategy/ |
| 监控告警 | sre-operations 工作流 |
| 容器安全扫描 | security-engineer 工作流 |
核心命令速查
Docker
docker build -t myapp:v1.0 .
docker build -t myapp:v1.0 --target runner .
docker run -d -p 3000:3000 --name myapp myapp:v1.0
docker run --rm -it myapp:v1.0 sh
docker logs -f myapp
docker logs --tail 100 myapp
docker system prune -af
docker image prune -af
docker history myapp:v1.0
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
Docker Compose
docker compose up -d
docker compose up -d --build
docker compose ps
docker compose logs -f app
docker compose down
docker compose down -v
docker compose up -d --build app
Kubernetes (kubectl)
kubectl apply -f deployment.yaml
kubectl apply -f .
kubectl get pods
kubectl get pods -w
kubectl describe pod <pod-name>
kubectl logs -f <pod-name>
kubectl logs -f <pod-name> --previous
kubectl scale deployment myapp --replicas=5
kubectl rollout undo deployment/myapp
kubectl rollout history deployment/myapp
kubectl exec -it <pod-name> -- sh
kubectl port-forward svc/myapp 3000:80
kubectl top pods
kubectl top nodes
Dockerfile 最佳实践决策
语言 │ 基础镜像 │ 预期大小 │ 注意事项
────────────┼───────────────────┼─────────────┼─────────────────
Node.js │ node:20-alpine │ 80~150MB │ 多阶段, pnpm
Java │ eclipse-temurin │ 200~350MB │ JRE only, -alpine
Python │ python:3.12-slim │ 100~200MB │ 多阶段, pip install
Go │ scratch/distroless│ 5~20MB │ CGO=0 静态编译
Rust │ scratch/distroless│ 5~15MB │ 静态编译
配套模板
templates/container-orchestration-template.md
常见坑
1. 用 latest 标签 → 不可复现
2. 不用多阶段构建 → 镜像 1GB+
3. root 运行 → 安全风险
4. 不设 HEALTHCHECK → K8s 不知状态
5. 不限制资源 → OOM Kill
6. 不用 .dockerignore → 构建上下文巨大
7. 数据卷不持久化 → 容器重启数据丢
8. 不设 restart policy → 崩溃后不自愈
9. compose 里用 host network → 端口冲突
10. 不分环境 → dev 镜像直接上生产
与其他 skill 的协作
上游:backend-engineer / frontend-engineer → 构建产物
下游:ci-cd-pipeline → 流水线集成
release-strategy → 发布策略
sre-operations → 运行时监控