用自然语言管理多服务器 Docker 部署

传统方式需要记住 SSH、Docker 命令和脚本参数,AI 方式只需一句话描述需求。通过 Claude Code 的 Skills 和 Commands 实现从"手动挡"到"自动挡"的体验升级。
杭州
用自然语言管理多服务器 Docker 部署

最近需要在多台远程服务器上启动多个 Docker 容器,并分配不同的端口。

传统方式

打开终端,SSH 连接到服务器,回忆 docker 命令的参数格式,手动启动容器,遇到错误排查日志,重复这一套流程。

如果经常遇到类似任务,通常会封装成 shell 脚本:

bash deploy.sh --targets "A,B" --ports "5000,5001,5002"

但这种方式也有问题:

  • 脚本的参数格式是什么?--targets 还是 --hosts?
  • 端口列表用逗号还是空格分隔?
  • 脚本是否还有未发现的 bug?

不管手动执行还是用脚本,本质上都需要记住特定的命令格式和参数规则。

AI 方式

用 AI 辅助的方式,同样的任务是这样完成的:

输入:

在服务器 A 和 B 上启动容器 A、B、C,端口从 5000 开始

AI 自动完成:

  • 理解意图:需要在 2 台服务器上启动 3 个容器
  • 提取参数:服务器列表 [A, B],容器列表 [A, B, C],起始端口 5000
  • 自动递增:计算端口分配 5000, 5001, 5002
  • 构建命令:生成 SSH + Docker 的完整命令
  • 执行并返回结果
维度 传统方式 AI 方式
输入 bash deploy.sh --targets "A,B" --ports "5000,5001,5002" 启动 A、B 容器,端口从 5000 开始
学习成本 需要记住参数格式 自然语言描述需求
容错性 参数错误直接报错 AI 理解意图并纠正
适应性 脚本修改后需要重新学习 AI 自动适配变化
调试 手动排查每个步骤 AI 自动处理异常

本质区别

传统方式像手动挡汽车:你需要知道什么时候换挡、怎么踩离合。

AI 方式像自动挡汽车:你只需要说“前进”或“后退”,底层细节由系统处理。

这不是简单的封装,而是抽象层级的提升——从“命令参数”提升到“意图理解”。

技术原理

工作流程

AI CLI 的工作流程可以分为三个步骤:

用户自然语言输入
    ↓
1. 理解意图(需要做什么?)
    ↓
2. 提取参数(目标、端口、容器...)
    ↓
3. 执行命令(SSH → Docker → 返回结果)

用户不需要知道命令格式、参数顺序、错误处理细节,只需要描述想要什么。

Skills 和 Commands 的角色

如果有多台服务器需要管理,可以为每台服务器定义一个 Skill:

---
description: 管理 A 服务器的 Docker 容器
---

A 服务器信息:

- 系统:Kali GNU/Linux Rolling
- Docker:27.5.1

连接方式:ssh A检查容器:ssh A "docker ps" 检查端口:ssh A "ss -tlnp | grep :5000"

Skills:AI 自动判断用户需要操作哪台服务器 Commands:用户手动触发,执行封装好的操作逻辑

两者配合,实现完整的自动化工作流。

用户体验对比

传统方式需要:

  • 记住 SSH 连接方式
  • 手动检查端口占用
  • 计算端口递增
  • 记住脚本参数格式

AI 方式只需要:

  • 说一句话:“在 A 服务器启动 A、B 容器,端口从 5000 开始”

总结

从命令行到自然语言,表面上是输入方式的改变,本质上是抽象层级的提升。

  • 命令行:需要记住工具的语法和参数
  • 自然语言:只需要表达想要什么