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