返回博客

2026年9月2日

不暴露 API,怎么在手机上管理 VPS 上的 Docker

在 iPhone 上重启容器、看日志、拉新镜像,走的是你已经有的 SSH 连接。Docker 守护进程始终不对公网开放。

不暴露 API,怎么在手机上管理 VPS 上的 Docker

远程管理 Docker,常见做法是把 Engine API 开在 TCP 端口上,再加一层 TLS。在 VPS 上,这意味着公网上多一个监听端口,多一张要轮换的证书。一步配错,守护进程就对所有人开放。

更简单的做法是走 SSH。能 SSH 登录服务器,就能访问它的 Docker socket。SwiftServer 通过这条 SSH 连接调用 Docker Engine API,方式与在机器上运行 docker 命令相同。服务器上无需新增监听或安装任何东西。

书架上的迷你主机和网络交换机

需要什么

  • 一台运行 Docker 的 VPS,以及有权使用 Docker 的用户:root 或 docker 组成员均可。
  • 手机能用密码或密钥 SSH 登录。登录后能运行 docker ps 即可。

rootless Docker 和 Mac 上的运行时(Docker Desktop、OrbStack、Colima、Rancher Desktop)均受支持。

1. 添加 VPS

打开 SwiftServer,点 +,填写地址、端口和登录信息。测试连接,信任主机密钥,保存。

2. 打开 Docker 面板

打开工具箱 → Docker 并选中这台机器,或在机器状态页上点 Docker 卡片。连接依次经过四个阶段:连接 → 检测引擎 → 加载数据 → 就绪,面板随即填满。

概览标签页的引擎徽标显示请求如何到达守护进程。Socket 表示 sshd 直接转发到 Docker socket,速度较快。CLI 隧道表示 SwiftServer 借服务器上的 docker 命令中转,处处可用,但稍慢。连接模式一页介绍了如何启用较快的方式,通常只涉及 sshd_config 中的一行。

3. 该干什么干什么

  • 某个容器不对劲。 在容器标签页打开它,实时查看日志(错误标为橙色),然后重启。SwiftServer 会用新快照核对,卡片显示运行中时,容器确实在运行。
  • 部署需要新镜像。 在镜像标签页拉取,每层都有进度条,再重启用到它的容器。最后清理旧镜像。
  • 有东西变了,你却没动过。 事件标签页保留守护进程的完整事件流,并分色显示。定时任务重启容器、容器半夜挂掉,都会带着时间戳记录在这里。
  • Compose 项目需要重启。 Compose 标签页列出所有项目,可执行 Up、Down、Restart、Pull,并查看日志。

常见问题

要开 2375 或 2376 端口吗? 不用,一切都经由 SSH。

rootless Docker 能用吗? 能。SwiftServer 先读取 DOCKER_HOST 和 DOCKER_CONTEXT,再探测常见的 socket 位置,包括 rootless 的。

可以 exec 进容器吗? 可以。打开运行中的容器,在“操作”下选择“打开 Shell”。镜像有 bash 就用 bash,否则用 sh,作为普通终端会话,经同一条 SSH 连接打开。这属于高级版的 Docker 管理能力。

哪些是免费的? 查看全部免费,包括七个标签页、实时统计、图表和事件。启动、停止、拉取、清理和 Compose 操作属于高级版。

树莓派或家里的服务器能用吗? 只要 Linux 上跑着 Docker 就行。树莓派的设置见在 iPhone 上监控树莓派。

Docker 功能页有整体介绍,Docker 文档涵盖每个标签页和连接模式。