用途
Docker Compose 技能用于容器编排与管理,让 AI 智能体可以管理多容器应用、服务、网络与卷,并用于排查容器化环境问题。其典型场景包括:管理本地开发环境、编排多容器应用、调试服务连通性与网络、监控容器日志与健康状态、构建和更新服务镜像、测试容器化应用栈、排查服务故障,以及管理应用生命周期(启动、停止、重启)。该技能采用渐进式披露以优化上下文使用,资料称上下文占用较 MCP 模式减少约 92%(MCP 模式约 25,000 tokens 常驻;技能模式约 700 tokens 元数据 + 按需加载)。
主要能力
技能提供 15 个工具,分为四类。
服务管理(5 个):
- up:启动 compose.yaml 中定义的服务,支持 detached、build、force_recreate、project_name、services、profiles、watch 等参数;对生产环境需确认。
- down:停止并移除容器、网络、卷;支持 volumes、remove_orphans、project_name;默认阻止卷移除(-v),需确认。
- start:启动已有容器而不重建,支持 services、project_name。
- stop:停止运行中的容器但不移除,支持 timeout(默认 10 秒)、services、project_name。
- restart:重启服务(停止 + 启动),支持 timeout、services、project_name。
状态与日志(3 个):
- ps:列出容器及状态,支持 all、services、project_name;输出字段 NAME、IMAGE、STATUS、PORTS。
- logs:查看服务日志并支持流式输出,支持 services、follow、tail(默认 100 行)、timestamps、since、project_name;follow 模式在 60 秒后自动终止。
- top:显示容器内运行进程,支持 services、project_name;输出 PID、USER、TIME、COMMAND。
构建与镜像(3 个):
- build:构建或重建服务镜像,支持 no_cache、pull、parallel(默认 true)、services、project_name;no-cache 构建需确认。
- pull:从仓库拉取服务镜像,支持 ignore_pull_failures、services、project_name;生产环境需确认。
- images:列出服务使用的镜像,支持 project_name;输出 CONTAINER、REPOSITORY、TAG、IMAGE ID、SIZE。
执行(2 个):
- exec:在运行中的容器内执行命令,必填 service 和 command,可选 user、workdir、env、project_name。
使用方式
需先安装并运行 Docker Engine;使用 Docker Compose V2(docker compose 插件,V1 docker-compose 已停止支持);项目中需有有效的 compose.yaml(首选)或 compose.yml / docker-compose.yml;并具备访问 Docker socket 的相应权限。
安装建议:安装 Docker Desktop(含 Docker Engine + Compose)。Windows 使用 Docker Desktop for Windows(WSL 2 或 Hyper-V);Mac 使用 Docker Desktop for Mac(Apple Silicon 或 Intel);Linux 使用 Docker Desktop for Linux,或从 Docker 仓库安装 Docker Engine + Compose 插件。验证命令:docker compose version。
常用命令参考(资料提供):
# 列出运行中的服务
docker compose ps
# 查看服务日志
docker compose logs <service>
# 启动服务
docker compose up -d
# 停止服务
docker compose down
# 重建服务
docker compose build
# 在容器中执行命令
docker compose exec <service> <command>
# 实时开发重载(Compose Watch)
docker compose watch
# 激活 profile 启动
docker compose --profile debug up -d
# 校验合并后的配置
docker compose config
资料还给出 YAML 与操作实践:数据库使用命名卷(如 postgres_data:/var/lib/postgresql/data);使用 healthcheck(含 test、interval、timeout、retries);默认使用一个网络,服务间按名称引用(如 http://api:3000);使用 env_file 或 environment,密钥放入 secrets;-f compose.yaml -f override.yaml 合并文件(后者覆盖);用 --project-name 隔离项目;开发用 build: context: . dockerfile: Dockerfile,生产固定镜像标签;up 前先运行 docker compose config 捕获错误。
2026 功能要点(资料)
compose.yaml 规范文件名:Compose V2 优先使用 compose.yaml 与 compose.yml,而非旧版 docker-compose.yml;顶层 version: 字段已弃用,新文件应完全省略。
Compose Watch 实时开发重载(Compose 2.22+ 正式可用):以 develop.watch 按服务配置,三种 action —— sync(即时复制变更文件到运行中容器)、rebuild(触发 docker compose build 并重建容器)、sync+restart(同步文件后重启容器进程,不完整重建)。用法:docker compose watch 或 docker compose up --watch。资料给出的选择建议:sync 用于解释型语言(Node.js、Python、Ruby);sync+restart 用于需重启进程但无需完整重建的配置或模板文件;rebuild 用于依赖清单变化(package.json、requirements.txt、go.mod)。
Profiles 环境专用服务:无 profile 的服务始终启动;带 profile 的服务仅在激活该 profile 时启动。可组合多个 profile,或通过 COMPOSE_PROFILES=debug,monitoring 环境变量指定。资料建议命名规则:[a-zA-Z0-9][a-zA-Z0-9_.-]+,推荐小写 kebab-case。
include 可组合配置(Compose 2.20 引入):顶层 include 键可将大型 compose 文件拆分为模块化、由不同团队维护的部分;每个被包含文件以其自身项目目录上下文加载,正确解析相对路径;include 可递归;资源名冲突会报错而非静默合并。
适用场景与限制
适用于本地开发环境管理、多容器应用编排、服务连通性与网络调试、日志与健康监控、镜像构建与更新、容器化应用栈测试、服务故障排查、应用生命周期管理。资料建议与 devops(主)、devops-troubleshooter(主)配合使用,流程为:校验 compose → 按任务 up/down/exec;容器调试可参考 operations/incident-response。建议 hook:Pre-up 执行 docker compose config(校验),Post-down 可选清理。
限制与安全注意事项(资料):down 的卷移除(-v)默认被阻止;生产环境的 up 与 pull、no-cache 构建需确认;logs 的 follow 模式在 60 秒后自动终止;V1 docker-compose 已停止支持,需使用 V2;使用 CMD(数组形式)而非 CMD-SHELL(字符串形式)以降低 shell 注入风险;Alpine 镜像中避免 curl 除非已安装,优先 wget -q --spider 或原生检查;为慢启动服务(JVM 应用、首次迁移)设置 start_period;始终为有状态服务定义 healthcheck,使 depends_on 的 condition: service_healthy 正常工作。资料还提及资源限制最佳实践(deploy.resources.limits/reservations 设置 cpus、memory)与多阶段构建模式(deps/builder/runner 阶段,开发 target builder、生产 target runner)。
关于收费、价格、认证考试费用等具体信息,除资料中提及的 Docker Certified Associate(DCA)考核占比(Orchestration 25%、Image/Registry 20%、Install/Config 15%、Networking 15%、Security 15%、Storage 10%)与免费学习材料外,其余暂未提供。