Arcane 是开源现代化 Docker 可视化管理平台,Web UI 管理容器、镜像、卷与网络。Go + SvelteKit 全栈架构,支持多环境远程代理、深色主题、移动端响应式、Docker Compose 一键部署,BSD-3 协议完全免费,文末附详细使用教程

🎤 引言

Home Lab 玩家的日常:开了 5 台 VPS,每台 docker ps 一眼看不到头;想看某个容器日志得 ssh 进去翻 docker logs -f;想改个端口要重启 Compose 文件再 docker compose up -d;想监控资源占用只能在服务器上开 Netdata 或者跑 cAdvisor。

Portainer 是老牌 Docker UI,但 2.x 改版后界面越来越重,商业版订阅墙越来越高;Dockge 走轻量路线,但只管 Compose stacks,不支持容器/镜像/网络的全功能管理。新出的 CasaOS 又绑死了自己的应用生态。

有没有一个既能 Portainer 全功能、Dockge 极简、CasaOS 美观的开源方案?

GitHub 6.6k Stars 的 getarcaneapp/arcane 就是冲着这个组合需求来的——Go + SvelteKit 全栈架构,BSD-3-Clause 协议,社区活跃到 2026-07-26 还在高频更新。


⭐ 核心功能

1. 完整的 Docker 资源管理

Arcane 提供容器、镜像、卷、网络四大核心资源的全生命周期管理,覆盖 Docker 用户 90% 的日常操作:

  • 容器:启动 / 停止 / 重启 / 删除 / 暂停 / 日志查看 / exec 进入终端 / 实时 stats
  • 镜像:列表浏览 / 拉取 / 删除 / 标签管理 / 占用空间统计
  • :创建 / 删除 / 挂载路径查看 / 孤立卷清理
  • 网络:列表 / 创建 / 删除 / 已连接容器关系图

每个资源都支持右键菜单 + 顶部操作栏双入口,老手不别扭,新手也不迷路。

2. Docker Compose 部署管理

直接拖拽 docker-compose.yml 到 Arcane 面板,或者点导入按钮选择本地文件,自动识别服务栈并按 docker compose 语义启动 / 停止。

实测:从零部署一个由 5 个服务组成的 WordPress 栈(WordPress + MySQL + Redis + Nginx + Certbot),整个流程在 Web UI 里 3 分钟搞定,比手敲命令行省事得多。

3. 多环境远程代理 (Remote Agents)

这是 Arcane 区别于 Portainer CE 的差异化亮点——同一个 Arcane 控制台可以同时管理多台 Docker 主机:

  • 本机 Docker Socket(默认)
  • 远程服务器上的 Arcane agent
  • 一台控制台 N 台机器,集群玩家的福音

安装 agent 只需在远程机器跑一行 docker run,环境隔离不污染网络拓扑。

4. 实时资源监控

内置 stats 面板展示:

  • 每个容器的 CPU / 内存 / 网络 / 磁盘 IO 实时曲线
  • 镜像占用空间 Top 10
  • 卷使用率分布
  • Docker engine 状态概览(运行中 / 停止 / 总数)

无需额外部署 cAdvisor / Prometheus / Grafana 这套监控全家桶,对轻量级玩家非常友好。

5. 现代 UI 与移动端适配

UI 完全用 SvelteKit 写的,响应速度比 Portainer 的 Angular 旧版快不少,关键操作零卡顿。设计风格介于 CasaOS(友好)和 Portainer(专业)之间:

  • 自带深色 / 浅色主题切换
  • 移动端响应式布局,手机上点开也能管理容器
  • 关键操作都有 toast 反馈,不会出现「点了不知道有没有生效」的尴尬

📥 安装与使用

环境要求

  • 任意运行 Docker 的 Linux 主机(Ubuntu 22.04+ / Debian 11+ / CentOS 9+)
  • Windows / macOS 也支持 Docker Desktop 环境
  • 推荐 2GB+ 内存(控制台本身很轻,但管理多个 agent 时会占用)

Docker Compose 一键部署

官方推荐的部署方式:

services:
  arcane:
    image: ghcr.io/getarcaneapp/arcane:latest
    container_name: arcane
    restart: unless-stopped
    ports:
      - "3552:3552"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - arcane-data:/app/data
      - /opt/docker:/opt/docker  # 可选:暴露 compose stacks
    environment:
      - PUID=1000
      - PGID=1000
      - APP_URL=http://your-ip:3552
      - ENCRYPTION_KEY=随机生成32位字符串
      - JWT_SECRET=随机生成32位字符串
    security_opt:
      - label:disable

volumes:
  arcane-data:

启动:

docker compose up -d

首次访问 http://your-ip:3552,按引导创建管理员账号,然后自动连接到本机 Docker Socket——开箱即用。

远程 Agent 接入

在第二台服务器上跑:

docker run -d \
  --name arcane-agent \
  --restart always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e AGENT_TOKEN=主控面板生成的token \
  ghcr.io/getarcaneapp/arcane:latest --agent

回到主控面板的 Settings → Agents,把 agent token 粘贴进去,第二台机器就并入管理控制台了。

官方文档:https://getarcane.app/docs/setup/installation

项目仓库:GitHub - getarcaneapp/arcane


🎯 适用场景

  • Home Lab / 自托管玩家:同时管理 2-10 台 VPS 上的 Docker 服务,需要统一面板而非逐台 ssh。
  • 小团队 DevOps:组内共享一个 Arcane 实例,新人 oncall 看 UI 就能上手,不用先学 kubectl / docker CLI。
  • NAS 用户:在群晖 / 极空间 / Unraid 上跑 Docker,希望有个比 Container Manager 更现代的 UI。
  • 个人项目 / Side Project:懒得记每个项目的启动命令,全扔进 Arcane 里统一管理。
  • 教学 / Demo:Docker 培训场景下,让学员先用 UI 熟悉概念,再过渡到命令行。

不太适合:纯 K8s 集群玩家(Arcane 是单机 Docker 管理,不接管 K8s);纯 CLI 极客(用 tmux + lazydocker 就够了);Docker Compose 都不愿意用的极简主义者。


🔍 对比 / 替代方案

工具部署方式UI 体验容器管理Compose多主机资源监控协议
ArcaneDocker⭐⭐⭐⭐⭐✅ 全功能✅ Agent✅ 内置BSD-3
Portainer CEDocker⭐⭐⭐✅ 全功能✅ Edge✅ 内置Zlib
Portainer BusinessDocker⭐⭐⭐⭐✅ 全功能✅ 高级商业
DockgeDocker⭐⭐⭐⭐⚠️ 仅 Compose⚠️ 基础MIT
CasaOS专用系统⭐⭐⭐⭐⭐⚠️ 应用商店⚠️⚠️ 基础Apache
YachtDocker⭐⭐⭐⚠️ 基础MIT
lazydocker终端N/AMIT

Arcane 的甜蜜点非常清晰:Portainer 的全功能 + Dockge 的轻量 + CasaOS 的美观,三者合一还开源免费。

横向对比 Portainer CE:Arcane UI 明显更现代(SvelteKit vs 老版 Angular),启动速度更快(Go 单文件部署 vs Portainer 多容器),多主机方案用 agent 模式比 Portainer Edge Agent 配置更直观。

缺点同样诚实:GitHub 显示当前 145 open issues,部分高级特性(如 K8s 支持、应用商店模板)仍在路线图上;BSD-3 协议比 MIT 略严,商业二次开发前最好让法务看一眼;移动端体验虽好但不及 CasaOS 那种为触屏重做的体验。


⚠️ 注意事项

  1. 必须挂载 Docker Socket-v /var/run/docker.sock:/var/run/docker.sock 是核心,等于给 Arcane 容器 root 级权限,生产环境务必限制访问(Arcane 自带鉴权)。
  2. ENCRYPTION_KEY 和 JWT_SECRET 必填:首次启动没有这两个环境变量会拒绝运行,用 openssl rand -hex 32 生成两个不同字符串填进去。
  3. 远程 agent 需要网络可达:主控和 agent 之间需要 TCP 连通(默认 3552 端口),跨地域机器建议加 WireGuard / Tailscale 隧道,别裸跑公网。
  4. 145 open issues 留意:项目年轻(2025-04 首发,至今 1 年出头),更新快但偶发回归 bug,部署到生产前先看 GitHub Issues 排雷。
  5. 底层数据库是 SQLite:配置和账户信息存在容器内 /app/data 卷里,备份这个卷即可;多节点部署时不要共享同一个 SQLite 文件,会锁冲突。
  6. 不接管 K8s:Arcane 只管 Docker / Docker Compose,集群场景请直接用 K8s Dashboard 或 Lens,不要硬塞 Arcane。
  7. 权限粒度粗:当前没有「只读用户 / 只管理某个项目」这种细粒度 RBAC,所有登录用户都是管理员级别,多人共管时建议按团队拆实例。

✅ 总结

Arcane 是 2025 年之后难得让人眼前一亮的 Docker 管理 UI 新势力。Go + SvelteKit 的全栈架构让启动速度和 UI 流畅度都站到了第一梯队,BSD-3 协议 + 多主机 agent + 内置资源监控的组合拳,让 Portainer CE 用户有充分理由迁移过来。

推荐指数 ⭐⭐⭐⭐⭐(5/5):UI 现代 + 功能完整 + 开源免费 + 多主机支持,这个四件套组合在同类里几乎找不到对手。

适合:Home Lab 玩家、小团队 DevOps、自托管爱好者、NAS 用户、Docker 教学场景。

不太适合:纯 K8s 集群、需要商业 SLA 保障的大型企业、纯 CLI 极客。

如果你是 Portainer 老用户嫌它越来越臃肿,或者 Dockge 用户想要更完整的功能集,Arcane 几乎是无缝迁移——一个 docker-compose.yml 起服务、导入已有的 stacks、登录即用,整个迁移过程 10 分钟内可以搞定。

官方文档:https://getarcane.app
GitHub:https://github.com/getarcaneapp/arcane