在OpenVZ VPS上的LXC容器

我试图在OpenVZ中托pipe的VPN上运行LXC,我尝试过使用多种图像风格,ubuntu。 centos,debian …没有运气。 LXC安装正确,但由于networking容器无法启动,似乎这是与接口的桥接!

有没有人有类似的问题? 有谁知道这是否是OpenVZ的限制?

从新鲜的Ubuntu 14.04安装开始:

sudo apt-get update sudo apt-get install lxc sudo lxc-create -n p1 -t ubuntu sudo lxc-start -n p1 --logfile log.txt cat log.txt lxc-start 1434379565.265 ERROR lxc_conf - conf.c:instantiate_veth:2949 - failed to create veth pair (vethP4LPC8 and vethO6MP73): Operation not supported lxc-start 1434379565.265 ERROR lxc_conf - conf.c:lxc_create_network:3261 - failed to create netdev lxc-start 1434379565.265 ERROR lxc_start - start.c:lxc_spawn:826 - failed to create the network lxc-start 1434379565.265 ERROR lxc_start - start.c:__lxc_start:1080 - failed to spawn 'p1' lxc-start 1434379565.265 ERROR lxc_start_ui - lxc_start.c:main:342 - The container failed to start. lxc-start 1434379565.265 ERROR lxc_start_ui - lxc_start.c:main:346 - Additional information can be obtained by setting the --logfile and --logpriority options. 

并尝试:

 sudo brctl addbr lxcbr0 add bridge failed: Invalid argument 

OpenVZ是一种操作系统虚拟化技术,就像LXC和Docker一样,但是基于各种内核补丁,很多都没有与主stream内核集成。

OpenVZ基于旧内核(2.6.x),现在没有很多东西需要pipe理容器(主要是cgroup)。 不幸的是,你不能在OpenVZ虚拟环境中运行LXC容器。

不要减less其他的答案(因为他们正确地说OpenVZ容器是容器 ),但看到这个有趣的链接: OVZ CT中的Docker (“自OpenVZ内核042stab105.4以来,可以在容器中运行Docker,本文将如何描述。 )

它可能会或可能不会为您的问题提供一些解决scheme,但理论上可以在CT中使用cgroup(在比042stab105.4更新的内核上并且使用更新的vzctl )。 基本你需要:

  • 检查你的内核configuration:在给定的内核下尝试lxc-checkconfig ,或者对于安装的内核使用CONFIG=/boot/config-2.6.32-openvz-042stab108.2-amd64 lxc-checkconfig

如果看起来没问题,你可以向前走,并且:

vzctl set $veid --save --features bridge:on --netif_add eth0 --netfilter full --devnodes net/tun:rw

并在CT中挂载自定义cgroup:

 mount -t tmpfs tmpfs /sys/fs/cgroup mkdir /sys/fs/cgroup/freezer,devices mount -t cgroup cgroup /sys/fs/cgroup/freezer,devices -o freezer,devices mkdir /sys/fs/cgroup/cpu,cpuacct,cpuset mount -t cgroup cgroup /sys/fs/cgroup/cpu,cpuacct,cpuset/ -o cpu,cpuacct,cpuset 

这确实是一个有趣的结构,但是ovz控件和cgroup并不是天生不兼容的(许多cgroupfunction都是空的stubfunction,例如什么也不做,只是不会传出错误信息)。

免责声明:我还没有尝试过(我的内核缺lesscgroup命名空间)。

另一个有用的链接是这个Docker问题跟踪器有关如何编译您的OVZ内核与所需的function的评论。