我想要在我的计算机上有一个隔离的(来宾)Linux 环境,这样我就可以搞砸而不用担心主机。例如,从源代码安装很多东西而没有包管理,污染环境环境变量等,然后当旧的来宾变得太混乱时生成另一个来宾环境。
我在 Tinycore linux 中使用 Virtualbox 获得了一些乐趣,但至少就我使用它的方式而言,我认为 Virtualbox 开销并不是完全必要的。一方面,如果可能的话,我想使用与我的主机相同的内核。
另外,当我浏览完 Linux From Scratch 教程时,我了解了一些有关 的知识chroot
,这似乎可能就是我正在寻找的内容。不过说实话,LFS 有很多我不太理解的地方,chroot 就是其中之一。chroot
如果我不是很担心它可能会扰乱我当前的环境,我会尝试使用它。
因此,我正在寻找一个虚拟化程序,该程序利用我在 linuxbox 上的事实(顺便说一句,我正在使用 PinguyOS)来加速虚拟化,或者寻找有关如何使用 chroot 作为隔离游乐场的参考。
答案1
克罗特是适合您的重量最轻的环境。它允许您使用相同的用户、相同的网络配置等安装另一个发行版(或同一发行版的另一个安装)。Chroot 仅在文件系统级别提供一些粗略的隔离。浏览这个网站用于 chroot如果您仍然不确定 chroot 能做什么和不能做什么,可能会有所帮助。
如果您正在寻找下一步,LXC现在包含在内核主线中。 LXC guest(称为容器)有自己的文件系统、进程和网络空间。容器中的 root 也是主机上的 root; LXC 可以防止来宾根的许多意外操作,但不能防止恶意来宾根(这是计划中的功能,请观看这个空间)。
其他与 LXC 有点相似的技术有虚拟服务器和开放VZ。 OpenVZ 提供但 VServer 或 LXC 不提供的一个重要功能是检查站:您可以拍摄正在运行的计算机的快照并在以后恢复。另一位候选人是用户模式Linux,它在主机中以普通用户身份运行的进程内运行完整的Linux系统。
为了试验另一个操作系统安装,chroot 就可以了。如果您想在实验安装中运行服务或使用网络,请选择 LXC。如果您需要快照,请使用 OpenVZ。如果你想要一个完全独立的内核但内存开销很小,那么用户用户模式Linux。如果您需要快照和单独的内核,请使用 VirtualBox。
答案2
码头工人使 LXC 更易于使用:
显着特点
文件系统隔离:每个进程容器都在完全独立的根文件系统中运行。
资源隔离:可以使用 cgroup 将系统资源(例如 cpu 和内存)以不同的方式分配给每个进程容器。
网络隔离:每个进程容器都在自己的网络命名空间中运行,具有自己的虚拟接口和IP地址。
写时复制:根文件系统是使用写时复制创建的,这使得部署速度非常快、内存和磁盘成本低。
记录:收集并记录每个进程容器的标准流(stdout/stderr/stdin),以便实时或批量检索。
更换管理层:对容器文件系统的更改可以提交到新映像中并重新用于创建更多容器。无需模板或手动配置。
交互式外壳:docker 可以分配一个伪 tty 并附加到任何容器的标准输入,例如运行一次性交互式 shell。
在引擎盖下
在底层,Docker 构建于以下组件之上:
Linux 内核的 cgroup 和命名空间功能
AUFS,一个强大的联合文件系统,具有写时复制功能
Go 编程语言
lxc,一组方便的脚本,用于简化 Linux 容器的创建。
答案3
研究一下 OpenVZ 或 Linux Containers,它们都在公共内核上实现了具有独特用户区的轻量级伪虚拟化环境。
OpenVZ现阶段比较成熟。
答案4
也许这可以帮助你:奥夫斯:先进的多层统一文件系统
您的系统位于较低级别。您可以在其之上挂载 aufs 文件系统。仅在此 aufs 文件系统上进行修改(写入),而不更改下面的“真实”文件系统。