Debian/Centos 上的 Freebsd Jails 替代方案

Debian/Centos 上的 Freebsd Jails 替代方案

我最終將從 FreeBSD/Freenas 遷移到 Debian/Freenas Scale,但問題更廣泛。 Linux osses 上的監獄相當於什麼。

現在大多數人會推薦 docker 或它的某些變體。我同意,但我真的很喜歡監獄的工作方式,我可以進入 shell 並更改/安裝我需要的東西。問題是(據我所知)不可能像監獄一樣對待碼頭工人,因此必須對其進行預配置等。

那麼下一個選項是 VM,我想這會起作用,但是為每個應用程式建立 vm 感覺過於複雜,而且不會浪費資源嗎?

因此,我正在尋找建議,用什麼來替換我目前的監獄,以保留盡可能多的功能。

答案1

如果出於設計原因需要使用某個作業系統,則需要將工具移植到該作業系統。

我們不提供產品推薦,因此您需要尋找或建立容器管理工具。 Jails 與 Linux 容器在實作細節上肯定有所不同。然而,對容器技術的比較將表明它們在高水平上是相似的。


FreeBSD 監獄透過隔離其他資源來增強 chroot。加上管理生命週期、從媒體安裝、啟動、停止的工具。

Linux類似的隔離機制有命名空間。網路、用戶、掛載、IPC、uname。大多數基於這些工具構建的容器工具(有多種選擇)都會強加自己關於一切應該如何運作的想法; Docker 不僅僅是一個 chroot。您可能不喜歡 Docker 處理映像或網路的方式。

但是,可以在沒有您所認為的容器的情況下使用 Linux 命名空間。關於命名空間的維基百科頁面有一個有趣的想法,即向 chroot 添加進程隔離:

SHELL=/bin/sh unshare --fork --pid chroot "${chrootdir}" "$@"

不包括創建此 chroot 並向其安裝內容的步驟。

答案2

您可能想更詳細地解釋您喜歡容器中錯過的監獄中的哪些功能。我個人運行 LXC 容器,它們有自己的個性(debian 或 debian 主機上的 ubuntu)。我可以在其中進行SSH,由於網路命名空間,它們擁有與主機IP 堆疊隔離的自己的IP 堆疊,並且由於進程命名空間,我可以在其中安裝和運行自己的一組應用程序,而無需與主機應用程式交互。

相關內容