Loading... <p style="text-align: left">前言:lxc是<span style="background-color: white;line-height: 20px;font-family: 宋体">一种操作系统层虚拟化(</span><span style="background-color: white;line-height: 20px;font-family: Helvetica">Operating system–level virtualization</span><span style="background-color: white;line-height: 20px;font-family: 宋体">)技术,为</span><span style="background-color: white;line-height: 20px;font-family: Helvetica">Linux</span><span style="background-color: white;line-height: 20px;font-family: 宋体">内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(</span><span style="background-color: white;line-height: 20px;font-family: Helvetica">Container</span><span style="background-color: white;line-height: 20px;font-family: 宋体">),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的命名空间和共用</span><span style="background-color: white;line-height: 20px;font-family: Helvetica">API</span><span style="background-color: white;line-height: 20px;font-family: 宋体">来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得</span><span style="background-color: white;line-height: 20px;font-family: Helvetica">Linux</span><span style="background-color: white;line-height: 20px;font-family: 宋体">用户可以容易的创建和管理系统或应用容器。</span></p> <p style="text-align: left">由于有些朋友对lxc虚拟机了解不多,所以我觉得,这个课题也算很新颖了。</p> <p style="text-align: left">马哥简单讲了lxc虚拟机的部署。我把他写成了脚本,全当练习啦!(别小瞧它,lxc虚拟机也有用武之地的!)</p> <p style="margin-bottom: 13px;line-height: 20px;background-color: white">用后体会:用了几天,占用内存很小,安装速度较快,如果你的电脑硬件配置较低,完全可是试试它!</p> <p style="margin-bottom: 13px;line-height: 20px;background-color: white">小伙伴们,有几点需要注意,lxc的虚拟机是非常简化版的虚拟机,共用的内核,也不支持fdisk,selinux跟宿主机是一样的也不支持修改等等(其他方面不足待考证)。</p> <p style="text-align: left">所以,我要说明,条件高的同学们不要使用啦。如果你做集群,或者需要使用大量虚拟机,对虚拟机要求的并不高,可以在一台虚拟机里安装多台的lxc虚拟机(vmware虚拟机的内存给大一些)。</p> <p style="text-align: left">实验环境:</p> <p style="text-align: left">1.将马哥发的lxc软件放到/root/lxc</p> <p style="text-align: left">2.配制好本地yum源</p> <p style="text-align: left">3.一个网卡就行</p> <p style="text-align: left"><span style="color:#002060">为了方便大家,我写了一些注释,脚本测试过几次,应该没有没问题。当然,由于每个人的环境不同,如果遇到问题大家可以联系我,自己改改也行,我不胜感激。</span></p> <p style="text-align: left">#!/bin/bash</p> <p style="text-align: left">########Note: please put the Lxc software file in /root/lxc################# </p> <p style="text-align: left">########Note: Please configure the local yum################################ </p> <p style="text-align: left">setenforce 0 &>/dev/null</p> <p style="text-align: left">service iptables stop</p> <p style="text-align: left">read -p "please enter your ip,Netmask and Network card Name(ex:1.1.1.1 255.0.0.0 eth0) :" UserIp Mask Device </p> <p style="text-align: left">#####请输入你的网卡的ip(随便给一个,不能重复)掩码和网卡名</p> <p style="text-align: left">if ! ping -w 1 -c1 $UserIp &>/dev/null;then</p> <p style="text-align: left">echo 'ok'</p> <p style="text-align: left">else</p> <p style="text-align: left"> echo "$UserIp has already been used."</p> <p style="text-align: left"> exit 1</p> <p style="text-align: left">fi</p> <p style="text-align: left">cd /etc/sysconfig/network-scripts/</p> <p style="text-align: left">cat > ifcfg-eth0 << EOF</p> <p style="text-align: left">DEVICE="$Device"</p> <p style="text-align: left">ONBOOT=yes</p> <p style="text-align: left">BOOTPROTO=none</p> <p style="text-align: left">IPADDR="$UserIp"</p> <p style="text-align: left">NETMASK="$Mask"</p> <p style="text-align: left">EOF</p> <p style="text-align: left">read -p "please enter mirror path,Must be absoulte path(ex:/dev/cdrom):" mirror 你们本地镜像在哪(要写绝对路径)</p> <p style="text-align: left">mount -o loop $mirror /mnt</p> <p style="text-align: left">echo 'mirror mount /mnt!'</p> <p style="text-align: left">cd /etc/sysconfig/network-scripts/</p> <p style="text-align: left">cp ifcfg-eth0 ifcfg-br0</p> <p style="text-align: left">sed -i '$a TYPE=Bridge' ifcfg-br0</p> <p style="text-align: left">sed -i '/DEVICE/c DEVICE=br0' ifcfg-br0</p> <p style="text-align: left">sed -i '/BOOTPROTO/c BOOTPROTO=none' ifcfg-br0</p> <p style="text-align: left">sed -i '/IPADDR/d' ifcfg-eth0</p> <p style="text-align: left">sed -i '/NETMASK/d' ifcfg-eth0</p> <p style="text-align: left">sed -i '/BOOTPROTO/c BOOTPROTO=none' ifcfg-eth0</p> <p style="text-align: left">sed -i '$a BRIDGE=br0' ifcfg-eth0</p> <p><br style="text-align: left" /></p> <p style="text-align: left">service NetworkManager stop</p> <p style="text-align: left">service network restart </p> <p style="text-align: left">yum install vsftpd -y</p> <p style="text-align: left">cp -a /mnt/* /var/ftp/pub</p> <p style="text-align: left">service vsftpd restart && echo 'vsftpd is ok!'</p> <p style="text-align: left">ip=`ifconfig br0 | awk -F ' +|:' '/inet addr/{print $4}'` #####ftp server ip #################</p> <p style="text-align: left">cd /root/lxc</p> <p style="text-align: left">yum install *.rpm -y</p> <p style="text-align: left">yum install libcgroup -y </p> <p style="text-align: left">service cgconfig restart </p> <p style="text-align: left">chkconfig cgconfig on</p> <p style="text-align: left">path='/usr/share/lxc/templates/lxc-centos'</p> <p style="text-align: left">sed -i '/lxc.network.link/c lxc.network.link = br0' /etc/lxc/default.conf</p> <p style="text-align: left">sed -i '/\[updates\]/,/updates$/d' $path</p> <p style="text-align: left">sed -i "/=os$/c baseurl=ftp://$ip/pub" $path</p> <p style="text-align: left">declare -a abc</p> <p style="text-align: left">declare -i A=0</p> <p style="text-align: left">read -p "please enter Machine Name,can have more Name(ex:centos1 centos2 ):" -a abc </p> <p style="text-align: left">#####输入虚拟机的名字空格隔开(输入几个名字就有几个虚拟机出来,这些名字你要记住)</p> <p style="text-align: left">Num=`echo "${abc[*]}" | wc -w `</p> <p style="text-align: left">for i in `seq 0 "$[$Num-1]"`;do</p> <p style="text-align: left">lxc-create -n ${abc["$i"]} -t $path</p> <p style="text-align: left">done</p> <p style="text-align: left">echo '#######run "chroot /var/lib/lxc/MACHINE NAME/rootfs passwd"###################' </p> <p style="text-align: left">你必须要设置密码才能登陆,将里面的‘MACHINE NAME’改成你的虚拟机名就可以设定了</p> <p style="text-align: left">echo '#######please modify the password of the virtual machine, and then run lxc-start -n MACHINE NAME####' </p> <p style="text-align: left">lxc-start -n 虚拟机名字 (这个是登陆用的)</p> <p style="text-align: left"></p> <p style="text-align: left"><span style="color:#002060">关于lxc虚拟机的几个小命令,帮助你玩转它!</span></p> <p style="text-align: left"><span style="color:#002060">lxc-start -n 虚拟机名 作用:开启虚拟机</span></p> <p style="text-align: left"><span style="color:#002060">lxc-stop -n 虚拟机名 作用:停止虚拟机</span></p> <p style="text-align: left"><span style="color:#002060">lxc-ls 作用:查看虚拟机</span></p> <p style="text-align: left"><span style="color:#002060">lxc-destroy -n 虚拟机名 作用:删除指定的虚拟机</span></p> <p style="text-align: left"><span style="color:#002060"><br /></span></p> <p style="text-align: left"><span style="color:#002060">本人新手一枚,也是第一次分享博客,脚本也比较乱,希望大家批评指正,不喜勿喷。真心的希望和大家共同进步,也希望马哥的兄弟们能见证我的成长!</span></p> <p><br style="text-align: left" /></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信