用途:为容器化开发提供 Docker 与 Docker Compose 实践指引。适用于为本地开发配置 Compose、设计多容器架构、审查 Dockerfile 的安全性与体积、排查容器网络或卷问题。
主要能力: 一、Compose 编排。示例给出标准 Web 应用结构:app 通过 build 指定 target,暴露端口、挂载源码卷、用环境变量传入 DATABASE_URL 与 REDIS_URL,并以 depends_on 的 service_healthy 条件等待 db;db 使用 postgres:16-alpine,配置卷与 pg_isready 健康检查;redis 使用 redis:7-alpine;卷单独声明。 二、多阶段 Dockerfile。分为 deps、dev(热重载)、build、production 四阶段:依赖阶段复制依赖清单并安装;生产阶段基于最小镜像,创建非 root 用户,按需从 build 阶段复制产物并 chown,设置 HEALTHCHECK 与启动命令。原则是每阶段单一用途、生产镜像只含运行时产物、非 root 用户、包含健康检查。 三、容器安全。Compose 中可设 security_opt: [no-new-privileges:true]、read_only: true、tmpfs 与 cap_drop: [ALL];基础镜像使用具体标签而非 :latest,如 python:3.12-slim-bookworm;以非 root 运行;不在镜像层存放密钥。 四、网络。服务按名称解析(app 连接 db:5432、redis:6379);可用多网络隔离,frontend 与 api 共享 frontend-net,api 与 db 共享 backend-net,db 仅能从 api 访问;端口可只绑定主机回环,如 127.0.0.1:5432:5432。 五、调试命令。docker compose logs -f app、docker compose exec app sh、docker compose exec db psql -U postgres、docker compose up --build、docker compose down -v、docker stats。
反模式:以 root 运行、使用 :latest 标签、不用卷存储数据、在 docker-compose.yml 或 Dockerfile 中写入密钥、把所有服务塞进单个容器、在生产使用 Compose 却无编排。
限制:资料中的 Dockerfile 使用占位符(如 base-image、dependency-manifest、install-dependencies、build-command 等),需按具体技术栈替换;具体收费、支持平台与效果暂未提供。