4.5 KiB
4.5 KiB
Docker Compose配置编辑指南
🎯 功能概述
安全地编辑和管理三台服务器(ubuntu1, ubuntu2, NAS)上的Docker Compose配置文件。
📁 目录结构
~/.openclaw/workspace/
├── docker-apps.yaml # 应用映射配置
├── docker-config-editor.sh # 配置编辑工具
└── DOCKER_CONFIG_EDITOR_GUIDE.md # 本指南
🛠️ 工具功能
1. 查看当前配置
./docker-config-editor.sh <服务器> <应用> show
示例: ./docker-config-editor.sh ubuntu1 portainer show
2. 创建备份
./docker-config-editor.sh <服务器> <应用> backup
示例: ./docker-config-editor.sh ubuntu1 portainer backup
3. 验证配置格式
./docker-config-editor.sh <服务器> <应用> validate
示例: ./docker-config-editor.sh ubuntu1 portainer validate
4. 重启应用
./docker-config-editor.sh <服务器> <应用> restart
示例: ./docker-config-editor.sh ubuntu1 portainer restart
🔄 安全编辑工作流程
步骤1:查看当前配置
./docker-config-editor.sh ubuntu1 portainer show
步骤2:创建备份
./docker-config-editor.sh ubuntu1 portainer backup
步骤3:下载配置文件到本地
scp ubuntu1:/home/shenwei/Docker/portainer/docker-compose.yml /tmp/portainer-docker-compose.yml
步骤4:编辑本地文件
# 使用你喜欢的编辑器编辑文件
vim /tmp/portainer-docker-compose.yml
# 或
nano /tmp/portainer-docker-compose.yml
步骤5:显示修改差异
# 获取原文件
ssh ubuntu1 "cat /home/shenwei/Docker/portainer/docker-compose.yml" > /tmp/original.yml
# 比较差异
diff -u /tmp/original.yml /tmp/portainer-docker-compose.yml
步骤6:上传并验证
# 上传修改后的文件
scp /tmp/portainer-docker-compose.yml ubuntu1:/home/shenwei/Docker/portainer/docker-compose.yml
# 验证配置格式
./docker-config-editor.sh ubuntu1 portainer validate
步骤7:重启应用
./docker-config-editor.sh ubuntu1 portainer restart
📋 支持的修改类型
1. 修改端口映射
# 修改前
ports:
- "9000:9000"
# 修改后
ports:
- "9001:9000"
2. 修改数据卷挂载
# 修改前
volumes:
- ./data:/data
# 修改后
volumes:
- /volume1/docker/portainer/data:/data
3. 修改环境变量
# 修改前
environment:
- DB_HOST=localhost
# 修改后
environment:
- DB_HOST=mysql
- DB_PORT=3306
4. 更新镜像版本
# 修改前
image: portainer/portainer-ce:2.19
# 修改后
image: portainer/portainer-ce:latest
⚠️ 安全注意事项
备份策略
- 每次修改前自动创建备份
- 保留最近5个备份文件
- 备份文件名格式:
docker-compose.yml.backup.YYYYMMDDHHMMSS
验证机制
- 语法验证:使用
docker compose config验证YAML语法 - 差异对比:修改前后显示差异
- 应用验证:重启后检查应用状态
回滚机制
如果修改后验证失败:
- 自动回滚到最新备份
- 报告回滚状态
- 保留错误日志
🚀 快速开始示例
示例1:修改portainer端口
# 1. 查看当前配置
./docker-config-editor.sh ubuntu1 portainer show
# 2. 创建备份
./docker-config-editor.sh ubuntu1 portainer backup
# 3. 下载并编辑
scp ubuntu1:/home/shenwei/Docker/portainer/docker-compose.yml /tmp/
# 编辑文件,修改端口
# 4. 显示差异并确认
# 5. 上传并验证
# 6. 重启应用
示例2:更新rsshub镜像版本
# 类似流程,修改image标签
📊 服务器路径映射
| 服务器 | Docker应用路径 | 示例应用 |
|---|---|---|
| ubuntu1 | /home/shenwei/Docker/ |
portainer, rsshub, it-tools |
| ubuntu2 | /home/shenwei/docker/ |
cloudflared, uptime-kuma |
| NAS | /volume1/docker/ |
navidrome, mysql80 |
🔍 故障排除
常见问题
- 连接失败:检查SSH配置和网络连接
- 权限问题:确保有文件读写权限
- 配置语法错误:使用
docker compose config验证 - 应用启动失败:检查Docker日志
调试命令
# 查看Docker日志
ssh ubuntu1 "cd /home/shenwei/Docker/portainer && docker compose logs"
# 查看容器状态
ssh ubuntu1 "cd /home/shenwei/Docker/portainer && docker compose ps"
# 查看备份文件
ssh ubuntu1 "ls -la /home/shenwei/Docker/portainer/docker-compose.yml.backup.*"
📝 最后更新
- 创建时间:2026-03-13
- 最后更新:2026-03-13
- 版本:1.0.0