Linux编程之设置ubuntu版的lxc容器仓酷云
对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解;lxc是一种体系层级的假造化计划,使用clone这个体系挪用的一些特征,摹拟一个假造化的场景(自力的收集、文件体系),并使用cgroup举行资本的限定办理。
和罕见的xen、kvm分歧,它不是一种半假造化手艺,他仅仅利用了当地cpu,只要一个传统意义上的操纵体系。相似的办理计划有Solaris的Zone,在Freebsd的Jail。
收集上关于ubuntu的lxc容器都有些小成绩,以是收拾一下但愿对人人有些匡助,lxc的相干命令就不注释了,对照复杂。
kernel
基础上kernel>=2.6.27的linux下都已在内核态撑持lxc。
利用lxc-checkconfig举行检测
hoterran@hoterran-laptop:~$sudolxc-checkconfigKernelconfig/proc/config.gznotfound,lookinginotherplaces...Foundkernelconfigfile/boot/config-2.6.35-28-generic---Namespaces---Namespaces:enabledUtsnamenamespace:enabledIpcnamespace:enabledPidnamespace:enabledUsernamespace:enabledNetworknamespace:enabledMultiple/dev/ptsinstances:enabled---Controlgroups---Cgroup:enabledCgroupnamespace:enabledCgroupdevice:enabledCgroupsched:enabledCgroupcpuaccount:enabledCgroupmemorycontroller:enabledCgroupcpuset:enabled---Misc---Vethpairdevice:enabledMacvlan:enabledVlan:enabled确认每一个选项都是enabled形态便可。
lxctools
除内核撑持外还必要一些用户态的工具。
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev别的bridge-utils搭建网桥的工具,debootstrap是用来搭建一个基础的debain容器体系的工具。
经由过程一下命令判别lxc是不是安装一般。
hoterran@hoterran-laptop:~$sudolxc-execute-ntest/bin/echo"helloworld"helloworld假如你刻不容缓想看看lxc的效果那末你能够尝尝以下的命令
/usr/bin/lxc-execute-nfoo-f/usr/share/doc/lxc/examples/lxc-macvlan.conf/bin/bashcgroups
cgroup是资本办理的关头。
mkdir/cgroupmountnone-tcgroup/cgroupbridges
网桥买通主机和容器的收集。
情况以下
192.169.1.*是你的主机的地点,我们不往管他。
192.168.2.1br网桥的地点,192.168.2.2lxc容器的地点。
设置网桥,这里假定eth0作为连通的物理网卡,这里的eth0和前面的config.ubuntu文件要逐一对应。
vim/etc/network/interfaces
autobr0ifacebr0inetstaticaddress192.168.2.1netmask255.255.255.0broadcast192.168.2.255gateway192.168.2.1bridge_portseth0bridge_stpoffbridge_maxwait5post-up/usr/sbin/brctlsetfdbr00是链路层面的互换,一切把ip给往失落。
ifconfigeth00.0.0.0重启收集激活网桥
servicenetworkingstopservicenetworkingstart察看网桥的情况
hoterran@hoterran-laptop:~$sudobrctlshowbridgename bridgeidSTPenabled interfacesbr08000.f0def12e0cdf noeth0也能够经由过程brctl间接增加网桥,这个更复杂。
lxc容器的设置
创立容器的目次
mkdir/lxccdlxc先创立一个mini版的ubuntu体系
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev0这里要守候一会,要下载大批的文件。
容器是简历在体系之上的,没法和驱动打交道没法熟悉就任何硬件,以是我们本人发生dev目次下的设备文件。
我们来编写一个剧本主动发生这些设备文件。
vim/usr/local/bin/lxc-config
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev1再进进体系的目次运转这个剧本
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev2设备发生终了,我们来设置容器,我们利用chroot跳到这个容器地点目次的外部,制止改了宿主机的文件
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev3下载有些必需的程序,特别sshd,我们稍后经由过程它来毗连到lxc容器。
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev4设置暗码
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev5修正一些基础的设置文件
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev6上面的dns必定要设置准确,不然ssh会变慢
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev7修正init文件,这里主张,启动lxc容器和启植物理机有很年夜分歧。我们只必要设置/etc/init/rc-sysinit.conf和/etc/init.d/rc.lxc文件。
/etc/init只保存以下3个文件。
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev8ssh.conf,rsyslog.conf是主动发生的,rc-sysinit.conf是容器的启动文件,必要我们来编纂。
vim/etc/init/rc-sysinit.conf
sudoapt-getinstalllxcbridge-utilsdebootstraplibcap-dev9/etc/init.d/rc.lxc为启动服务的文件
vim/etc/init.d/rc.lxc
hoterran@hoterran-laptop:~$sudolxc-execute-ntest/bin/echo"helloworld"helloworld0加入chroot
hoterran@hoterran-laptop:~$sudolxc-execute-ntest/bin/echo"helloworld"helloworld1如许全部容器外部的操纵体系就设置终了了,回到宿主机,仍是在/lxc目次,我们来设置lxc容器的启动设置文件
vimconfig.ubuntu
hoterran@hoterran-laptop:~$sudolxc-execute-ntest/bin/echo"helloworld"helloworld2个中收集相干的文件要特别注重不要设置毛病。
设置容器启动后必要挂载的文件体系
vimfstab.ubuntu
hoterran@hoterran-laptop:~$sudolxc-execute-ntest/bin/echo"helloworld"helloworld3到这里为止宿主机情况,我们创立了一个容器目次,设置了两个文件。
hoterran@hoterran-laptop:~$sudolxc-execute-ntest/bin/echo"helloworld"helloworld4启动容器
hoterran@hoterran-laptop:~$sudolxc-execute-ntest/bin/echo"helloworld"helloworld5登录到容器
hoterran@hoterran-laptop:~$sudolxc-execute-ntest/bin/echo"helloworld"helloworld6延长浏览
http://delicious.com/musicode/lxc
http://fex.rus.uni-stuttgart.de/lxc-ubuntu
http://lxc.teegra.net/
http://blog.bodhizazen.net/linux/lxc-configure-ubuntu-lucid-containers/
http://en.wikipedia.org/wiki/Operating_system-level_virtualization
尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。 上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题. 有疑问前,知识学习前,先用搜索。 通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。 其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。 把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。 如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。 目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,RedhatLinux和DebianLinux是网络管理员的理想选择。 选择一些适于初学者的Linux社区。 现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
页:
[1]