LXC 容器和桥接

LXC 容器和桥接

                    我需要逐步配置才能在 Ubuntu 中创建 LXC 容器

  1. 配置 Lxc 容器的正确方法
  2. 正确配置 cgroup 的方法
  3. 在主机和容器中配置网络的正确方法

                                                                                             笔记

  4. 我已经配置了 30 到 35 次以上的容器,我在 cgroup 方面遇到了问题(将其安装在 fstab 中),重新启动 PC 后,计算机在 grub 屏幕后停止运行,如果我不重新启动它就可以正常工作

  5. 我的容器中的网络无法正常工作,我已经做了我能做的一切。

答案1

以下答案重复了以下链接中的大部分信息

                                                         龙芯

容器是一种轻量级虚拟化技术。它们更类似于增强型 chroot,而不是 Qemu 或 VMware 等完全虚拟化,因为它们不模拟硬件,而且容器与主机共享相同的操作系统。因此,与 Solaris 区域或 BSD jail 相比,容器更好。Linux-vserver 和 OpenVZ 是两种现有的、独立开发的 Linux 容器类功能实现。事实上,容器是 vserver 和 OpenVZ 功能上游工作的结果。容器中仍然缺少一些 vserver 和 OpenVZ 功能,但是容器可以启动许多 Linux 发行版,并且具有可以与未修改的上游内核一起使用的优势。

                                         让 LXC 更加简单

12.04 LTS 的主要重点之一是使 LXC 非常易于使用,为了实现这一点,我们从几个不同的方面努力修复已知错误并改进 LXC 的默认配置。

创建一个基本容器并在 Ubuntu 12.04 LTS 上启动它现在归结为:

sudo apt-get install lxc
sudo lxc-create -t ubuntu -n my-container
sudo lxc-start -n my-container

这将默认使用与您的机器相同的版本和架构,显然还有其他选项可用(–help 将列出它们)。登录名/密码是 ubuntu/ubuntu。

我们为使 LXC 更易于使用而进行的另一项工作是将将常规系统转变为容器所需的黑客数量减少到零。从 12.04 开始,我们无需对标准 Ubuntu 系统进行任何修改即可使其在容器中运行。现在甚至可以原始 VM 映像并使其在容器中启动!

ubuntu-cloud 模板还允许您获取我们的一个 EC2/cloud 映像,并使其作为容器而不是云实例启动:

sudo apt-get install lxc cloud-utils
sudo lxc-create -t ubuntu-cloud -n my-cloud-container
sudo lxc-start -n my-cloud-container

最后,如果你想测试新的酷东西,你也可以使用[juju][3]LXC

[ -f ~/.ssh/id_rsa.pub ] && ssh-keygen -t rsa
sudo apt-get install juju apt-cacher-ng zookeeper lxc libvirt-bin --no-install-recommends
sudo adduser $USER libvirtd
juju bootstrap
sed -i "s/ec2/local/" ~/.juju/environments.yaml
echo " data-dir: /tmp/juju" >> ~/ .juju/environments.yaml
juju bootstrap
juju deploy mysql
juju deploy wordpress
juju add-relation wordpress mysql
juju expose wordpress

# To tail the logs
juju debug-log

# To get the IPs and status
juju status

                                            让 LXC 更安全

Ubuntu 12.04 中 LXC 的另一个主要关注点是确保其安全性。John Johansen 出色地扩展了 apparmor,使我们能够实现每个容器的 apparmor 配置文件,并防止大多数已知的危险行为在容器中发生。

注意:除非我们在内核中实现用户命名空间并由 LXC 使用,否则我们不会说 LXC 是 root 安全的,但是 Ubuntu 12.04 LTS 中附带的默认 apparmor 配置文件会阻止我们所知的任何 armful 操作。

这主要意味着对 /proc 和 /sys 的写入权限受到严格限制,挂载文件系统也受到限制,默认情况下只允许挂载已知安全的文件系统。默认 LXC 配置文件中的功能也受到限制,以防止容器加载内核模块或控制 apparmor。

更多详细信息请参见此处:

http://www.stgraber.org/2012/05/04/lxc-in-ubuntu-12-04-lts/

https://help.ubuntu.com/12.04/serverguide/lxc.html

http://www.stgraber.org/2012/03/04/booting-an-ubuntu-12-04-virtual-machine-in-an-lxc-container/

答案2

cgroup 已经在 Ubuntu 11.10 服务器中配置,您不必再配置它。下面是总体上非常好的指南。

http://www.activestate.com/blog/2011/10/virtualization-ec2-cloud-using-lxc

答案3

如果您还没有见过 LXC 网络面板...请尝试一下。

http://lxc-webpanel.github.io/

它易于安装并为您提供 LXC Web Panel 的良好浏览器界面。

该应用程序是用 Python 编写的,允许您从 GUI 完成绝大多数 LXC 管理。

创建/启动/停止/销毁、冻结/解冻、编辑/更改网络、编辑许多 cgroup 参数等。

非常好的工具

相关内容