LXC简单介绍与使用

简介

LXC(LinuX Containers)Linux容器,一种操作系统层虚拟化技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。透过统一的名字空间和共享API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或应用容器。
在Linux内核中,提供了cgroups功能,来达成资源的隔离。它同时也提供了名称空间隔离的功能,使应用程序看到的操作系统环境被区隔成独立区间,包括进程树,网络,用户id,以及挂载的文件系统。但是cgroups并不一定需要启动任何虚拟机。
LXC利用cgroups与名称空间的功能,提供应用软件一个独立的操作系统环境。LXC不需要Hypervisor这个软件层,软件容器(Container)本身极为轻量化,提升了创建虚拟机的速度。

而Docker本质来说不是容器,而是容器的管理工具,最初的Docker也是基于LXC实现的。

LXC关键技术点:

  • chroot,根切换,从容器内的角度来看,仿佛真的有自己的根树
  • namespaces:名称空间,负责将资源隔离,比如pid,网络,mnt,user,uts等
  • CGroups:控制组,负责控制资源的分配

LXC基本架构

在这里插入图片描述

LXC常用命令

  • lxc-checkconfig
    检查系统环境是否满足容器使用要求;

  • lxc-create
    创建lxc容器;
    格式:lxc-create -n NAME -t TEMPLATE_NAME

  • lxc-start
    启动容器;
    格式:lxc-start -n NAME -d

  • lxc-info
    查看容器相关的信息;
    格式:lxc-info -n NAME

  • lxc-console
    附加至指定容器的控制台;
    格式:lxc-console -n NAME -t NUMBER

  • lxc-stop
    停止容器;

  • lxc-destory
    删除处于停机状态的容器;

  • lxc-snapshot
    创建和恢复快照;

  • 退出容器方式:<Ctrl+a q>

LXC简单使用

第一步:安装LXC与网桥管理工具包

lxc在epel源中所以需要先添加epel源仓库

yum install -y epel-release
yum install lxc-templates lxc  bridge-utils -y

第二步:添加网桥

下面几步最好同时执行,否则如果你在xshell终端上会断网

brctl addbr virbr0  #添加网桥
brctl addif virbr0 ens33 ; # 将网桥关联到ens33这个网卡 \
ip addr del dev ens33 192.168.253.128/24 ; #把网卡上的ip删了 \
ifconfig  virbr0 192.168.253.128/24 up  #给网桥配置ip \
route add default gw 192.168.253.2 #设置默认网关

在这里插入图片描述

第三步:检查系统是否满足容器使用要求

lxc-checkconfig

没有什么错误,表示没问题
在这里插入图片描述

第四步:创建LXC容器

创建LXC容器要基于模版,这里使用/usr/share/lxc/templates/lxc-centos这个模版,这个模版其实就是一个脚本,定义了这个容器需要的文件,环境,然后去指定的镜像源安装。这个其实也是LXC容器一个缺点,显得太过笨重臃肿了。

lxc-create --name=lxc_test1 -t /usr/share/lxc/templates/lxc-centos

安装完成之后
在这里插入图片描述
这个是说,root密码存放的位置在/var/lib/lxc/lxc_test1/tmp_root_pass中,如果你想自己修改root密码可以使用chroot /var/lib/lxc/lxc_test1/rootfs passwd这个命令
这里我们自己修改一下密码为123456
在这里插入图片描述

第五步:启动容器

启动容器

lxc-start  -n lxc_test1 

这样,一个容器就启动好了,接下来就是简单的管理和操作了。如果想后台运行使用-d 选项
在这里插入图片描述
另起一个终端查看容器相关信息

lxc-info -n lxc_test1

在这里插入图片描述

其他的管理操作可以查看上面的常用命令

LXC的图形界面

项目地址为
https://github.com/lxc-webpanel/LXC-Web-Panel
官网
http://lxc-webpanel.github.io/

安装方法也很简单

yum install git  -y #项目在github上,可以利用git拉下来
yum install python-pip -y 
pip install flask==0.9
git clone https://github.com/lxc-webpanel/LXC-Web-Panel.git

启动

cd LXC-Web-Panel/
python lwp.py

然后可以访问本机的5000端口
在这里插入图片描述
这里的用户名密码默认admin/admin
在这里插入图片描述
接下来就正常管理了

  • 5
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Docker和LXC(Linux Container)都是容器技术,但它们在实现和使用上有一些区别。 Docker是一个开源的容器化平台,它使用了自己的容器引擎,基于Go语言编写。Docker采用了一种轻量级的容器化方案,通过使用镜像(Image)来打包应用程序及其所有依赖项,并提供了一套丰富的命令行工具和API来管理容器的生命周期。Docker的目标是快速、可移植和可重复部署的应用程序交付。 LXC是一种操作系统级别的虚拟化技术,它允许在同一主机上运行多个隔离的Linux系统实例,称为容器。LXC基于Linux内核的容器功能(cgroups和命名空间等),提供了一种轻量级的虚拟化解决方案。LXC可以直接访问主机的内核和硬件资源,并提供更接近于原生环境的性能。 主要区别如下: 1. 应用层面 vs 系统层面:Docker更关注应用程序的打包、交付和部署,而LXC则提供了更接近于独立系统的隔离环境。 2. 镜像管理:Docker使用层次化的镜像结构,允许基于已有镜像创建新的镜像,具有更高的可复用性和可扩展性。LXC则更倾向于使用完整的系统镜像。 3. 生态系统:Docker拥有庞大的生态系统,有大量的镜像和工具可用。LXC相对来说生态系统较小。 4. 管理工具:Docker提供了一套命令行工具和API,用于管理容器的创建、启动、停止等操作。LXC也有自己的管理工具。 总的来说,Docker更适用于轻量级应用程序的打包和部署,而LXC更适用于需要更接近于独立系统环境的应用场景。选择使用哪种容器技术取决于具体的需求和使用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值