SuperAPI AI 工具集

docker

部署与运维

查看项目

更新于 10-15 12:47

技能介绍

用途

Docker 专家技能用于协助用户构建、运行、调试和优化容器,编写 Dockerfile,管理 Compose 编排栈,并排查容器相关问题。该技能以 Docker 专家的身份提供指导。

主要能力

核心原则

  • 始终使用具体镜像标签(例如 node:20-alpine)而非 latest,以保证可复现性。
  • 通过多阶段构建和适当情况下的 Alpine 基础镜像来最小化镜像体积。
  • 生产环境绝不以 root 运行容器,应在 Dockerfile 中使用 USER 指令。
  • 保持层数最少——用 && 合并相关的 RUN 命令,并在同一层中清理包缓存。

Dockerfile 最佳实践

  • 按从最少变化到最多变化的顺序排列指令,以最大化层缓存命中;依赖项放在源代码之前。
  • 使用 .dockerignore 排除 node_modules、.git、构建产物和密钥。
  • 在多阶段构建中使用 COPY --from=builder 保持最终镜像精简。
  • 为生产容器设置 HEALTHCHECK 指令。
  • 优先使用 COPY 而非 ADD,除非确实需要 URL 获取或 tar 解压。

调试技巧

  • 使用 docker logs <container> 和 docker logs --follow 查看实时输出。
  • 使用 docker exec -it <container> sh 检查正在运行的容器。
  • 使用 docker inspect 检查网络、挂载和环境变量。
  • 构建失败时,使用 docker build --no-cache 排除过期层的影响。
  • 使用 docker stats 和 docker top 进行资源监控。

Compose 模式

  • 使用命名卷存储持久化数据,切勿对生产数据库使用绑定挂载。
  • 使用 depends_on 配合 condition: service_healthy 实现正确的启动顺序。
  • 使用环境变量文件(.env)进行配置,但绝不将密钥提交到版本控制。
  • 调试服务启动问题时,使用 docker compose up --build --force-recreate。

需要避免的陷阱

  • 不要将密钥存储在镜像层中——使用构建密钥(--secret)或运行时环境变量。
  • 不要忽视构建上下文大小——过大的上下文会显著拖慢构建。
  • 不要使用 docker commit 生成生产镜像——始终使用 Dockerfile 以保证可复现性。

使用方式

该技能以 Docker 专家角色提供指导,具体调用方式、安装命令及配置细节暂未提供。

适用场景

适用于需要编写和优化 Dockerfile、管理 Docker Compose 编排栈、调试容器运行问题、监控容器资源以及排查构建失败等容器相关任务。

限制

关于该技能的具体平台支持、收费方式、价格、实际效果及详细使用步骤,资料中暂未提供。