Linux
到底什麼是 Linux 容器?
我一直在閱讀許多關於 Linux 容器的文件。我還嘗試了CentOS 方式和Ubuntu 方式。
維基百科說
它是一種作業系統級別的虛擬化。
Linuxcontainers.org 說
LXC 是 Linux 核心包含特性的使用者空間介面。
我說不清楚。
- LXC 是否只是一個使用者界面,還有其他一些提供容器功能的核心模組。
- 或者 LXC 是在安裝軟體包時修補到核心的東西,它還提供使用者空間實用程序。
- 在 CentOS 上試用時,
lxc
不需要安裝包,儘管它在儲存庫中可用。- 在 CentOS 上,無需安裝
lxc
libvirt 守護程序即可lxc:///
使用 libvirt 命令實用程序進行連接。那麼核心中是否已經有一個 lxc 模組?但我沒有找到任何與lsmod
.- 但是,核心中的哪個模組提供容器化?
這是一個令人困惑的話題,因為沒有一件事可以“提供容器化”。容器是在 Linux 核心中實現的一個通用概念,它使用命名空間進行程序隔離,使用 cgroup 進行資源管理,可能還有更多——比如用於安全性的 SELinux。
這些
lxc
工具是一種可能的介面——您可以將其視為前端,儘管將其視為“前端加膠水”可能會更好。libvirt-lxc
是一個名稱相似但完全不同的此類工具,systemd-nspawn
還有另一個。linux 容器的熱門話題 Docker也是一層使用者界面和粘合劑,但它實際上可以位於其他幾個後端之上,包括上述任何後端——請參閱這篇關於 Docker 0.9 的稍微過時的部落格文章,特別是圖形解釋庫容器。
Dan Walsh 在 Usenix ‘13 上對此發表了演講,這可能會有所幫助:https ://www.usenix.org/conference/lisa13/secure-linux-containers (免責聲明:Dan 是我在 Red Hat 的同事。 )