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

4.6 KiB
Raw Blame History

title, source, author, published, created, description, tags
title source author published created description tags
Docker Compose配置编辑指南 shenwei

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

验证机制

  1. 语法验证:使用 docker compose config 验证YAML语法
  2. 差异对比:修改前后显示差异
  3. 应用验证:重启后检查应用状态

回滚机制

如果修改后验证失败:

  1. 自动回滚到最新备份
  2. 报告回滚状态
  3. 保留错误日志

🚀 快速开始示例

示例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

🔍 故障排除

常见问题

  1. 连接失败检查SSH配置和网络连接
  2. 权限问题:确保有文件读写权限
  3. 配置语法错误:使用 docker compose config 验证
  4. 应用启动失败检查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