Docker
完整的 Docker 面板:SwiftServer 如何通过 SSH 连到引擎、各个标签页分别做什么,以及连不上时怎么办。
只要机器上跑着 Docker,SwiftServer 就为它提供一个完整的 Docker 面板。 从这台机器的 Docker 卡片,或者 Docker 一节打开它。浏览是免费的, 管理操作属于 Premium。
SwiftServer 怎样与 Docker 通信
SwiftServer 直接使用 Docker Engine API,走这台机器已有的 SSH 连接。
既不在服务器上安装任何东西,也不会把 Docker 端口暴露出去。到守护进程有两条路径:
一条是 socket 转发,由 sshd 把每个请求直接送进 Docker socket;另一条是自动回退的
CLI 隧道,在无法转发时通过服务器上的 docker 命令行中转。概览标签页上,
引擎卡片的徽章会显示当前走的是哪一条:绿色的 Socket:…,或橙色的 CLI 隧道。
两者的区别,以及怎样切到 socket 转发,见连接模式。
SwiftServer 查找引擎的方式和 docker 命令行一致:先读 DOCKER_CONTEXT 和
DOCKER_HOST,再探测常见的 socket 位置,其中包括 rootless Docker,以及 Colima、
OrbStack、Rancher Desktop 的 socket。连接过程有四个可见阶段:
连接 → 检测引擎 → 加载数据 → 就绪。
各个标签页
- 概览:引擎版本和状态,容器、镜像、卷的数量,可回收空间,容器状态分布, 所有运行中容器的实时 CPU 与内存,以及资源占用最高项。
- 容器:列出每一个容器及其状态(运行中、已暂停、已退出等)和健康检查结果。 单个容器的页面提供日志、进程和检查,并可以执行 启动 / 停止 / 重启 / 暂停 / 终止 / 删除。
- Compose:列出 Compose 项目,每个项目都可以执行 up / down / start / stop / restart / pull 这组 Compose 操作,并查看最近的日志。
- 镜像:拉取(带实时进度)、删除和清理。
- 卷:检查、删除和清理。
- 网络:检查和删除。
- 事件:引擎的实时事件流。
Compose 项目是怎么被发现的
Compose 项目是从容器标签里发现的。在另一台机器上启动的项目,或者容器已经被删掉的项目,
都不会出现在这里;在这台机器上运行 docker compose up 之后才能看到。
SwiftServer 用的是新版 docker compose 插件,不是旧的独立
docker-compose。
连不上的时候
面板会明确说出问题是什么:「Docker socket 权限不足」「无法访问 Docker 守护进程」 「未安装 Docker」等等,每一种都有对应的处理办法。具体要跑哪些命令、需要发给我们什么, 都写在故障排查 → Docker 里。
另外,Windows 服务器上的 Docker 不受支持:那里的引擎在命名管道后面, OpenSSH 无法访问。