用自然语言管理多服务器 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 开始”

总结

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

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