Files
nexus/openclaw/xingyao/docker/DOCKER_CONFIG_EDITOR_GUIDE.md

214 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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