Linux Containers 專案在 2026 年 5 月 6 日推出 Incus 7.0 LTS,這是繼 2024 年 6.0 LTS 之後的第二個長期支援版本,維護期一路延伸到 2031 年 6 月。對於長期在 Proxmox 與 LXD 之間搖擺、或者覺得 Docker 不夠用的人,這個版本值得認真停下來看一眼。
Incus 是 2023 年 8 月從 LXD 分支出來的 fork。當時 Canonical 把 LXD 從 Linux Containers 拉回公司內部,LXD 原作者 Stéphane Graber 跟一群 maintainer 把專案帶走,命名為 Incus。兩年多過去,Incus 已經在主要 Linux 發行版倉庫裡都看得到,Debian 13、Ubuntu 26.04、Fedora 41 起內建套件,LXD 那邊的活躍度則明顯下降。
Incus 不是「精簡版 Proxmox」
兩者都能管虛擬機,也都附帶網頁介面,但定位完全不同。Proxmox 是一套產品,從 ISO 安裝、Debian base、自家 kernel、ZFS、Ceph、HA、備份、防火牆,所有功能都捆在一起;它預設使用者會把整臺機器交給它管理。
Incus 走的是反方向:一支 Go 寫的 daemon、一支 client,可以裝在任何現有的 Linux 上而不接管整臺機器。它沒有官方 Web UI(社群維護 incus-ui-canonical),管理介面以 CLI 與 REST API 為主,所有 Terraform、Ansible、Python SDK 都從 API 衍生。對於把 Incus 嵌進既有 IaC 流程、或者單純不想被某一套產品鎖死的場景,這種設計相當友善。
最大的差異在 Incus 的「系統容器」模型。它跑的是 LXC 之上的完整 OS image——不是 Docker 那種把單一 process 包成 layer 的 app container,而是更接近一臺輕量 VM 的東西,啟動秒數、SSH、systemd、cron 都齊全,但記憶體開銷只有 KVM 的零頭。要在一臺 32 GB 的 VPS 上塞二十幾個獨立的 Debian 環境,Incus 是少數能不痛地做到的工具。
7.0 LTS 真正值得停下來看的三個變動
5 月 6 日的 release notes 列了一長串改動,其中三項對日常使用影響最大。
內建 S3 listener,MinIO 走人。 Incus 一直有 storage bucket 功能,可以把底層 ZFS、LVM、Ceph pool 切出來當 S3 端點,但實作上是把 MinIO binary 包進來。MinIO 開源版在 4 月被標為 archived 之後,Incus 沒有跟著切換到 Garage 或其他替代品,而是自己寫了一支原生的 S3 listener,直接掛在 ZFS、Ceph、cephfs、LVM 之上。少一個外部依賴、少一個要追的 CVE 來源、S3 操作不再需要繞一層代理。對小型部署來說特別有意義,過去開一個 storage bucket 會被迫拉起完整的 MinIO process,現在這個成本歸零。
OCI image 原生支援。 這項功能在 6.3 就引入,7.0 LTS 才正式列為穩定。incus launch docker:nginx:latest mynginx 可以直接從 Docker Hub 或任何 OCI registry 拉 image,當作 application container 起來跑。意義不在於取代 Docker——Docker 在 image 建構、registry 整合、開發體驗上仍然更成熟——而是讓同一臺機器上的「我要跑一個 system container 模擬 VM」跟「我要跑一個臨時 nginx」可以在同一套指令、同一套網路、同一套 storage 下並存。在過去這需要兩套工具加上一層 bridge 串起來。
儲存綁定到 instance、跟著 instance 走。 新的 dependent storage volume 機制讓附加的 volume 可以宣告為「跟著這個 container 走」,於是 snapshot、migration、backup、刪除時 volume 都會被一起處理。聽起來瑣碎,實際上是過去 LXD 時代最容易踩雷的地方之一:搬遷一個 container 結果發現某個 detached volume 沒被帶過去,半夜兩點重建資料。
剩下的還有 LINSTOR 與 TrueNAS storage driver、address set 取代過去散亂的 ACL 規則、cluster 關機時自動 evacuate 到其他節點。需要 cluster 的人會用得到,單機部署則大致無感。值得注意的是 cgroup v1 與 iptables-based firewall 處理已被標記為 deprecated,舊環境升級前要先確認 host 已切到 cgroup v2 跟 nftables。
在 VPS 上跑 Incus 的幾個前提
不是每一臺 VPS 都能跑 Incus,這是先決條件的問題,不是設定問題。
KVM 為基底的 VPS(多數臺灣商用 VPS 屬於這類)可以跑完整 Incus,包含 system container 與 nested VM——後者需要 host 開啟 nested virtualization,下單前最好向業者確認。OpenVZ 或 LXC-based 的 VPS 則只能跑 application container,而且常常連這個都跑不起來,因為 host 沒給足 cgroup 與 namespace 權限。
kernel 版本是新的硬門檻:7.0 LTS 要求 6.12 以上。Debian 13、Ubuntu 24.04 HWE、Rocky 10 都符合;CentOS 7、Ubuntu 22.04 預設 kernel 就不行。套件來源建議用 Zabbly 維護的官方 apt repository(Stéphane Graber 本人維護),不要用發行版倉庫裡的舊版——Debian 13 內建版本停在 6.0 附近,距離 7.0 還有一段。
網路設定是另一個容易卡的點。Incus 預設會建一個 incusbr0 的 bridge,搭配自帶的 DHCP 與 NAT,跑起來幾乎免設定。問題在這條 bridge 預設用 10.x.x.x/24,如果 VPS 上已經有 WireGuard、Tailscale、Docker network 在用接近的網段,會撞 routing。改網段或改成 macvlan、ipvlan 是常見解法,但都得動 host network,這點跟 Docker 開箱即用的體驗有落差。
從 Docker 過來會卡在哪裡
對於日常只跑 Docker Compose 的人,Incus 的學習曲線比想像中陡。
最大的心智模型差異在 image。Docker image 是分層、無狀態、用 Dockerfile 建構;Incus 的 system container image 是完整 OS rootfs,配置寫在 cloud-init 或進 container 後直接改。要重現一個環境,Docker 的習慣是 commit Dockerfile,Incus 的習慣是 export profile 加 cloud-init userdata。兩種思路都行得通,但混在一起會非常痛苦。建議是把單一服務鎖在單一思路裡,不要跨工具拼裝。
第二個落差是 networking。Docker 的網路抽象(bridge、overlay、macvlan)與 Incus 重疊但不一致,跨工具串接要透過 host bridge 或 macvlan。Incus 7.0 在這方面有改進——OVN 整合更成熟,address set 簡化了 ACL——但都需要花時間理解 Incus 自己的網路模型。
第三點是備份與遷移。incus copy 跟 incus move 在同一個 cluster 內或不同遠端之間搬 container/VM 都很順,包含 live migration(VM 限定,需要 shared storage)。但若已經習慣 Docker volume 加 restic 或 rsync 的備份流程,要改成 Incus 的 snapshot 加 incus export,runbook 等於重寫。
實務建議是不要全部搬。把長期跑、需要獨立 IP、需要 systemd 的服務搬到 Incus system container(Mastodon、Matrix、GitLab、Forgejo),把短期、無狀態、頻繁重建的服務留在 Docker(PHP application、靜態網站、CI runner)。同一臺 host 上兩者並存是 Incus 在 7.0 之後刻意支援的場景。
取代 Proxmox?看在解什麼問題
如果手上是一臺 16 vCPU 的實體機要切出十幾臺 VM 給不同用途,Proxmox 仍然是低阻力選擇,Web UI、HA、ZFS pool 管理、備份排程都已經包好,運維新手也能上手。Incus 在這個情境下要補的東西不少。
但要把幾臺 VPS 上的 system container、application container、storage bucket 整合進 Terraform 或 Ansible 的 GitOps 流程,Incus 的 API-first 設計就明顯佔上風,部署、回收、複製環境都能寫進版本控制。常見的部署模式是 Proxmox 留在實體機房或代管的設備上做底層虛擬化,再租用幾臺 VPS 跑 Incus 容器搭配對外服務——兩者解的問題其實不衝突。
7.0 LTS 把長期被詬病的 MinIO 依賴、零碎的 ACL、不一致的 OCI 支援都處理掉,加上五年支援期,是這幾年第一個能放心拿來規劃長期部署的版本。需要的人這個月就可以動手了。
要部署 Incus、Docker 或其他自架虛擬化平臺,硬體底層的穩定性是一切的前提。NCSE Network 位於臺灣是方電訊機房的 VPS 主機採用 Intel Gold CPU 與 NVMe SSD,支援 nested virtualization 與 IPv6 雙堆疊,適合作為 Incus 系統容器或 KVM nested VM 的基礎。歡迎到 ncse.tw 看看規格與方案。