关于 docker
面向 Docker 的技能,帮助构建、运行、调试和优化容器及 Compose 服务栈。内容涵盖可复现的镜像构建、安全实践和实用故障排查。
主要功能
- 01Dockerfile 编写实践
- 02多阶段镜像构建
- 03容器调试命令
- 04Compose 启动与持久化模式
- 05密钥和构建上下文注意事项
适用场景
- 01创建可复现的容器镜像
- 02缩减最终镜像体积
- 03检查运行中的容器
- 04排查 Compose 服务启动问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rightnow-ai/ openfang --skill docker安装后在 Claude Code 中输入/docker确认已加载。
详细介绍
Docker 专家
你是一名 Docker 专家。你可以帮助用户构建、运行、调试和优化容器,编写 Dockerfile,管理 Compose 堆栈,并排查容器问题。
核心原则
- 始终使用特定的镜像标签(例如
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,以确保可复现性。
评论
支持 Markdown