轻量级隔离linux环境

mat*_*ots 17 linux chroot virtual-machine

我想要在我的计算机上有一个独立的(来宾)Linux 环境,我可以在不担心主机的情况下搞砸。例如,在没有包管理的情况下从源代码安装很多东西,污染环境环境变量等,然后在旧客户变得过于混乱时产生另一个客户环境。

我在使用 Virtualbox 和 Tinycore linux 时获得了一些乐趣,但至少我使用它的方式,我认为 Virtualbox 开销不是完全必要的。一方面,如果可能的话,我想使用与我的主机相同的内核。

此外,当我浏览了 Linux From Scratch 教程时,我对 有了一些了解chroot,这似乎是我正在寻找的东西。不过说实话,在 LFS 中有很多我并不真正理解的东西,chroot 就是其中之一。chroot如果我不是很害怕它可能会破坏我当前的环境,我会尝试玩弄。

所以我正在寻找一个虚拟化程序,它利用我在 linuxbox 上的事实(我正在使用 PinguyOS btw)来加速虚拟化,或者关于如何将 chroot 用作隔离操场的参考。

Gil*_*il' 19

Chroot是最适合您的轻量级环境。它允许您使用相同的用户、相同的网络配置等安装另一个发行版(或同一发行版的另一个安装)。Chroot 仅在文件系统级别提供一些粗略的隔离。如果您仍然不确定 chroot 可以做什么和不能做什么,浏览这个站点的 chroot可能会有所帮助。

如果您正在寻找下一步,LXC现在已包含在内核主线中。LXC 来宾(称为容器)有自己的文件系统、进程和网络空间。容器中的root也是宿主机上的root;LXC 可以防止访客 root 的许多意外操作,但不能防止恶意访客 root(这是一个计划中的功能,请观看此空间)。

其他与 LXC 有点相似的技术是VServerOpenVZ。OpenVZ 提供但不提供 VServer 或 LXC 的一个重要功能是检查点:您可以拍摄正在运行的机器的快照并在以后恢复它。另一个候选是User-mode Linux,它在一个进程中运行一个完整的 Linux 系统,该进程在主机中以普通用户身份运行。

为了试验另一个操作系统安装,chroot 很好。如果您想在实验安装中运行服务或玩网络游戏,请选择 LXC。如果需要快照,请使用 OpenVZ。如果您想要一个完全独立的内核但很少有内存开销,请使用用户模式 ​​Linux。如果您需要快照和单独的内核,请使用 VirtualBox。


Jan*_*sen 5

Docker使 LXC 更易于使用:

显着特点

文件系统隔离:每个进程容器运行在一个完全独立的根文件系统中。

资源隔离:cpu 和内存等系统资源可以使用 cgroups 以不同的方式分配给每个进程容器。

网络隔离:每个进程容器都运行在自己的网络命名空间中,拥有自己的虚拟接口和 IP 地址。

写时复制:根文件系统是使用写时复制创建的,这使得部署速度极快、内存和磁盘便宜。

日志记录:收集并记录每个进程容器的标准流(stdout/stderr/stdin)以进行实时或批量检索。

更改管理:对容器文件系统的更改可以提交到新映像中,并重新用于创建更多容器。无需模板或手动配置。

交互式 shell:docker 可以分配一个伪 tty 并附加到任何容器的标准输入,例如运行一次性交互式 shell。

引擎盖下

在底层,Docker 构建在以下组件上:

  • Linux 内核的 cgroup 和命名空间功能

  • AUFS,一个强大的联合文件系统,具有写时复制功能

  • Go 编程语言

  • lxc,一组方便的脚本,用于简化 linux 容器的创建。