在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用compose
星标49
分支12
更新时间2026年1月19日 10:12
Docker Compose 编排
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
Docker Compose 编排
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
OpenClaw 配置管理
OpenClaw 安装与部署
OpenClaw 运维与故障修复
OpenClaw 问题排查与诊断
备份策略设计
云备份方案
| name | compose |
| description | Docker Compose 编排 |
| version | 1.0.0 |
| author | terminal-skills |
| tags | ["docker","compose","orchestration","multi-container"] |
多容器编排、环境变量、网络配置等技能。
# 启动服务
docker compose up
docker compose up -d # 后台运行
docker compose up --build # 重新构建
# 停止服务
docker compose down
docker compose down -v # 同时删除卷
docker compose down --rmi all # 同时删除镜像
# 查看状态
docker compose ps
docker compose ps -a
# 查看日志
docker compose logs
docker compose logs -f # 实时跟踪
docker compose logs service_name
# 执行命令
docker compose exec service_name sh
docker compose run service_name command
# 重启服务
docker compose restart
docker compose restart service_name
# 扩缩容
docker compose up -d --scale web=3
# docker-compose.yml
version: "3.9"
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- api
api:
build: ./api
environment:
- DATABASE_URL=postgres://db:5432/mydb
depends_on:
- db
db:
image: postgres:15
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: secret
volumes:
db_data:
networks:
default:
driver: bridge
services:
app:
# 简单形式
build: ./app
# 完整形式
build:
context: ./app
dockerfile: Dockerfile.prod
args:
- VERSION=1.0
target: production
cache_from:
- myapp:cache
services:
web:
ports:
- "80:80" # HOST:CONTAINER
- "443:443"
- "8080-8090:8080-8090" # 端口范围
- "127.0.0.1:3000:3000" # 绑定特定 IP
services:
app:
volumes:
# 命名卷
- data:/var/lib/data
# 绑定挂载
- ./config:/etc/app/config:ro
# 匿名卷
- /var/lib/data
volumes:
data:
driver: local
services:
app:
environment:
- NODE_ENV=production
- DATABASE_URL=postgres://localhost/db
# 或使用映射形式
environment:
NODE_ENV: production
DATABASE_URL: postgres://localhost/db
# 从文件加载
env_file:
- .env
- .env.local
services:
web:
depends_on:
- db
- redis
# 带条件
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
services:
web:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
services:
web:
deploy:
replicas: 3
resources:
limits:
cpus: '0.5'
memory: 512M
reservations:
cpus: '0.25'
memory: 256M
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
services:
frontend:
networks:
- frontend
backend:
networks:
- frontend
- backend
db:
networks:
- backend
networks:
frontend:
driver: bridge
backend:
driver: bridge
internal: true # 内部网络,无外部访问
services:
db:
networks:
backend:
aliases:
- database
- postgres
# .env
POSTGRES_VERSION=15
POSTGRES_PASSWORD=secret
APP_PORT=3000
# docker-compose.yml
services:
db:
image: postgres:${POSTGRES_VERSION}
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
app:
ports:
- "${APP_PORT}:3000"
# docker-compose.override.yml(开发环境,自动加载)
# docker-compose.prod.yml(生产环境)
# 使用多个配置文件
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
# docker-compose.yml(基础配置)
services:
app:
image: myapp:latest
# docker-compose.override.yml(开发覆盖)
services:
app:
build: .
volumes:
- .:/app
environment:
- DEBUG=true
# docker-compose.prod.yml(生产覆盖)
services:
app:
restart: always
environment:
- DEBUG=false
version: "3.9"
services:
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- app
app:
build: .
environment:
- DATABASE_URL=postgres://postgres:secret@db:5432/mydb
- REDIS_URL=redis://redis:6379
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
db:
image: postgres:15-alpine
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: secret
POSTGRES_DB: mydb
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:
version: "3.9"
services:
app:
build:
context: .
target: development
volumes:
- .:/app
- /app/node_modules # 排除 node_modules
environment:
- NODE_ENV=development
command: npm run dev
ports:
- "3000:3000"
services:
db:
image: postgres:15
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro
environment:
POSTGRES_PASSWORD: secret
services:
app:
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
# 查看配置
docker compose config
# 查看服务日志
docker compose logs service_name --tail=100
# 进入容器
docker compose exec service_name sh
# 查看网络
docker network ls
docker network inspect project_default
# 重建服务
docker compose up -d --force-recreate service_name
| 问题 | 排查方法 |
|---|---|
| 服务无法启动 | docker compose logs, 检查依赖 |
| 网络不通 | 检查网络配置、服务名 |
| 卷挂载问题 | 检查路径、权限 |
| 环境变量未生效 | docker compose config 验证 |