Docker 容器化全栈
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f12a44b7/self-dev-docker。
技能介绍
解决的问题
Docker 项目里的故障很少是单一命令错误,更多来自镜像不可复现、构建缓存失效、容器以 root 运行、资源没有上限、日志写满磁盘、网络解析失败、端口暴露不当、Compose 依赖过早、匿名卷累积,以及 ENV、COPY、build args 把敏感信息写进镜像历史。工程师在排障时常常需要在命令、Dockerfile、Compose、网络和卷之间反复切换,缺少一套稳定的检查顺序。
技能如何工作
该技能把 Docker 容器化任务整理成可直接引用的规则与陷阱清单:
- 镜像构建:优先固定基础镜像版本,例如
python:3.11.5-slim;合并RUN包管理步骤;多阶段构建中明确 stage;先复制依赖清单,再安装依赖,最后复制源码。 - 运行与排障:给容器设置内存等限制,配置日志轮转;理解退出码
137与139,通过docker inspect、docker logs、docker cp查看死容器状态。 - 网络与卷:自定义网络里使用容器 DNS;本地访问绑定
127.0.0.1;使用 named volumes;处理 bind mount 的 host user 与 container user 权限问题。 - 安全与清理:避免
ENV、COPY、build args 保存 secret;优先使用 secrets mount 或运行时环境变量;谨慎使用--privileged;定期执行 image、builder、container、network 清理。
适用边界
它适合 Dockerfile、Docker Compose、镜像发布、容器调试和主机级容器运维,不替代 Kubernetes 编排、云平台 IAM、GitOps 或应用层架构设计。对于 distroless 镜像、无 shell 场景,需要结合 docker cp 或 debug sidecar 处理。
使用场景
- 构建 Python 服务镜像时,需要固定基础版本、合并包安装并优化构建缓存。
- 排查容器因内存超限被杀或段错误退出,需要读取退出码、日志并检查资源限制。
- 用 Compose 起多服务,需要修正 depends_on、env 目录和命名卷挂载问题。
- 发布镜像前检查非 root、日志轮转、端口绑定和 secret 是否写进镜像历史。
适合人员
- 负责 Python 微服务打包的后端工程师:希望构建可复现、非 root 的镜像。
- 维护内部工具部署的运维工程师:希望排查 OOM、日志写满和端口占用。
- 配置多服务联调的全栈工程师:希望修好 Compose 依赖、卷挂载与环境变量。
- 审核容器安全的基础设施工程师:希望避免 secret 进入镜像层并清理无用资源。