zoukankan      html  css  js  c++  java
  • [zz]LXC容器虚拟化技术

    lxc是一种操作系统级虚拟化技术,类似的虚拟化技术还有:freebsd的jail,linux的openvz。openvz相比都很熟悉啦,因为好多vps都是用openvz做的,操作系统级别虚拟化跟一般的kvm等虚拟化技术有啥区别呢?通常的虚拟化技术会对硬件做虚拟,提供给虚拟机中的操作系统使用,每一个虚拟机中的系统感觉不到自己是在虚拟机中运行,每个虚拟机可以看作一个真实的硬件+操作系统的组合。操作系统级的虚拟化是在linux的内核以上提供的虚拟化技术,意味着不同的虚拟机跟宿主机之间是共用着一个内核。这样想下,我们是不是省了好多虚拟硬件跟好多个内核的开销呢?难怪openvz可以在一台普通物理机上做出一百多台虚拟机。

    chroot这个东西应该好多同学都用过了,会提供给一个独立的环境给大家使用,lxc在cgroup的支持下,可以更好的控制虚拟环境对各种资源的分配。

    如何创建一个虚拟环境,先整一个容器出来^_^,其实就是一个完整的文件系统:

    debootstrap sid rootfs http://debian.osuosl.org/debian/
    这个命令会从在线站点下载一个完整的操作系统文件系统环境下来
    然后写一个配置文件:
    lxc.utsname = my_ssh_container
    lxc.network.type = veth
    lxc.network.flags = up
    lxc.network.link = br0
    lxc.network.ipv4 = 10.0.2.16/24
    lxc.network.name = eth0
    lxc.mount = /path/to/fstab
    lxc.rootfs = /path/to/rootfs
    最后两个最好用绝对路径哦,相对路径的话你换到别的目录下会启动不了。
    根据这个配置文件创建一个容器:
    lxc-create -n name -f configfile
    这个其实会复制配置文件到/var/lib/lxc/name/config^_^
    启动一个容器:
    lxc-start -n name init
    查看容器信息:
    lxc-info -n name
    停止容器:
    lxc-stop -n name
    销毁容器:
    lxc-destroy -n name
    本文参考自:

    http://www.ibm.com/developerworks/cn/linux/l-lxc-containers/

    
    

    按照如上的做法,容器是可以创建启动成功,但是~你是没法操作这个容器的,原因就是,操作系统启动的时候的getty不正常,无法提供给用户shell^_^
    去把/etc/inittab其中的getty改成bash的路径就好啦^_^
    还有,也可以远程ssh登录,先chroot进去,然后apt-get install openssh-server之后重启就好啦

  • 相关阅读:
    python操作elasticsearch
    php源码的编译
    linux 访问windows 共享文件
    list容器排除重复单词的程序
    求组合数m_n
    简单堆排序
    快速排序
    判断点在直线左侧或者右侧
    求取点到直线的距离
    求给定三个点的夹角
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2489770.html
Copyright © 2011-2022 走看看