MXterm Pro

Mac Docker 构建终端:构建和 SSH 部署并排跑

Henry AGI
阅读约 4 分钟
Diagram: one workspace split into three panes, a docker build pane, an SSH deploy pane, and an SFTP file panel

把 Mac Docker 构建终端和 SSH 部署会话并排放:一个分屏跑 docker build(或 docker compose up --build),旁边的分屏连服务器。在 MXterm Pro 里,拆分只要一个快捷键(Cmd+D)。两边都是基于真实 PTY 的真实 shell,所以 docker logs -f 和 SSH 会话的表现和在命令行里一样,也没有什么 Docker 集成要学。

拆分工作区:一个分屏构建,一个分屏部署

按 Cmd+D 把当前分屏向右拆开,按 Cmd+Shift+D 则向下拆。Windows 版的快捷键是 Ctrl+D 和 Ctrl+Shift+D。在一个分屏里运行 docker build -t myapp . 或 docker compose up --build。

在另一个分屏里打开或复用到目标服务器的 SSH 会话,构建一结束就能 docker pull 新镜像或重启整套服务。

有两个以上分屏后,把某个分屏的标题栏拖向另一个分屏的边缘。MXterm Pro 会高亮指针下的区域:分屏中间是交换分屏,最近的边是插入到左侧、右侧、上方或下方。松开鼠标,分屏就落在那里。插入的分屏总是从 50/50 均分开始。

分隔条也会吸附:松手时离中线在约 3.5% 以内,它就停在 50/50。双击分隔条可重置为 50/50。Cmd+Shift+M 临时最大化当前分屏,全屏看一长串构建日志时很有用。再按一次就回到双分屏视图,继续部署。

两个分屏都是基于真实 PTY 的真实终端会话,用的是每个分屏共用的 portable-pty Rust 后端,不是套在外面的一层封装。所以 docker logs -f、docker stats 和 docker exec 都在真实 shell 里运行,不需要配置任何 Docker 专用的东西。

这套做法真正适合谁

这套 Docker 构建加 SSH 部署的做法,适合在本地构建镜像(或通过 SSH 触发构建),再手动推送或拉取到 VPS 或小型云主机的人。比如独立开发者、没有完整 CI/CD 流水线的小团队,以及用 AI 编程 Agent 迭代 Dockerfile、想就地重跑构建的人。

如果部署已经全自动,第二个分屏的意义就小一些。CI 流水线每次合并都会构建、推送并滚动更新容器,“构建完成”和“服务器跑起来”之间没有手动环节。这个分屏办法的价值在手动或半手动的中间一步。

相关指南在分屏终端里同时跑 Claude Code 和 Codex

AI Agent 改 Dockerfile 时盯着构建

把一个编程 Agent(Claude Code、Codex、Gemini CLI、Copilot)放在一个分屏,旁边放构建分屏。Agent 改了 Dockerfile 或 compose 文件后,在相邻分屏里重跑构建,不用切换上下文。Agent 的改动和构建输出同时留在屏幕上。

内置的 Command Recipes 输入框(Cmd+J)里有一组固定的现成命令,对应日常任务。它不是通用的命令生成器。对 Docker,它只认两种意图:让它列出容器,它给你 docker ps -a && docker stats --no-stream;让它清理,它给你 docker system prune -af --volumes。

它不会替你写 docker build 命令,不会编造 --entrypoint 覆盖,也不会推算 bind mount 参数。这些要自己输入,和在任何终端里一样。

worktree 隔离是创建工作区页面里的一个可选复选框,默认关闭,只在 git 仓库里生效。勾选为每个功能使用独立的 git worktree后,Agent 会在自己的 <repo>/.worktrees/<slug> 检出目录里改 Dockerfile,并使用新的 swarm/<adjective>-<noun> 分支,例如 swarm/brave-otter。你的构建分屏仍然盯着仓库根目录下的普通工作目录。

构建读取文件时,文件可能被 Agent 中途改掉,这样能降低这种可能性。你可以先审查并合并 Agent 对 Dockerfile 的改动,再让自己的构建读取它。

容器启动前,先把文件放到服务器上

有些部署需要先在服务器上放好文件,容器才能正常启动:.env 文件、TLS 证书、配置挂载。内置的 SFTP 浏览器可以处理,不用另装 FTP 客户端。从 SSH 管理器打开服务器,它的标签页就带 SFTP 面板,然后把文件拖过去。

如果容器要求特定权限,右键点文件,选更改权限(Chmod),再勾选复选框或选一个预设(755、644、777、600)。

如果文件已经在服务器上(Dockerfile、nginx.conf、.env* 或 YAML 格式的 compose 文件),在 SFTP 面板里双击它。它会带语法高亮在远程主机上直接打开编辑,省去下载、本地修改、再上传。

chmod 对话框和远程编辑在 Free 套餐里都能用。

这个工作流在 Free 和 Pro 下的区别

默认情况下,Free 套餐没有分屏数量限制,允许 5 台已保存的 SSH 主机和 1 个已保存的 MXterm Host。Pro 没有主机数量上限。

这个场景下,MXterm Pro 与 iTerm2、Warp、Termius、MobaXterm 的比较

iTerm2 免费且成熟,它的分屏加 tmux 集成能很好地处理这种本地构建、远程部署的模式。如果你只用 Mac,也不需要内置的 SSH 主机列表、SFTP 浏览器,或同一窗口里的 AI Agent,几个 iTerm2 分屏就够用了。

对这个工作流,MXterm Pro 的区别在于:SSH 主机管理器、内置 SFTP 浏览器和多 Agent 的 Control Room(原 War Room),都和构建分屏在同一个窗口里。用 iTerm2 的话,通常还要另外加一个 SFTP 客户端,再自己想办法管理服务器列表。

Warp 围绕命令块和内置 AI 构建,界面现代,由 GPU 渲染。工作流是“问 AI、跑一条命令、看输出”时,它很强。MXterm Pro 的重心是在一个分屏布局里放多个真实终端和多个 Agent。

Termius 是出色的跨平台 SSH 客户端,主机可同步,也有自己的 SFTP,如果你还要在手机上管服务器就特别有用。它同样有分屏视图和本地终端。不过它围绕已保存的主机和会话设计,而不是围绕带 AI Agent 的构建与部署工作区。

MobaXterm 在思路上最接近:标签页会话、侧边栏里的图形化 SFTP 浏览器,还有宏,如果你已经用它做这种 Docker 加 SSH 的流程,会觉得很熟悉。MXterm Pro 是较新的 Tauri 应用,用同样的“终端和 SFTP 在一个窗口”思路构建。它运行在 macOS 上,另有一个未签名的 Windows x64 版本,并增加了 MobaXterm 没有的多 Agent 层。

自己跑起来试试

多分屏 SSH、Command Recipes(Cmd+J)和多 Agent 的 Control Room (原 War Room):先免费用。

下载 MXterm Pro

已经有 MXterm Pro?阅读设置指南 →

第一次了解 MXterm Pro?查看价格 →

常见问题

MXterm Pro 有 Docker Desktop 那样的容器仪表盘吗?

没有。MXterm Pro 不能替代 Docker Desktop,也没有图形化的容器管理器。它是终端 App,Docker 命令和其他命令一样在分屏里运行。

能通过 MXterm Pro 在远程服务器上跑 docker build 吗?

能。SSH 到装了 Docker 的服务器后,docker build 在那里的运行方式,和通过其他任何 SSH 连接完全一样。

Command Recipes 里有 Docker 命令吗?

只有两条。让它列出正在运行的容器,它返回 docker ps -a && docker stats --no-stream。让它清理,它返回 docker system prune -af --volumes。它不会运行 docker build,也不会编造 bind mount 或 --entrypoint 覆盖这类自定义参数。这些要手动输入,和在别处一样。

怎么不切窗口就为构建再开一个分屏?

按 Cmd+D 把当前分屏向右拆开,按 Cmd+Shift+D 向下拆开。Windows 版的快捷键是 Ctrl+D 和 Ctrl+Shift+D。有了两个分屏后,也可以把分屏标题栏拖到另一个分屏的边缘,把它重新停靠到那里。

问问 AI:MXterm Pro 怎么样

根据本页内容,在 ChatGPT、Claude 或 Perplexity 里直接生成回答。回答由 AI 写,不是我们写的,请核对它引用的来源。

发送的问题怎么用分屏把 Docker 构建和 SSH 部署并排放在一起?