Linux容器基石:LXC核心概念与实践指南
文章目录
- LXC容器
- LXC 是什么?
- LXC的特点
- LXC与Docker的关系
- 基础指令
- 安装LXC
- 容器创建
LXC容器
LXC 是什么?
LXC(Linux Containers)是Linux容器,一种操作系统层虚拟化技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的名字空间和共享API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易地创建和管理系统或应用容器。
LXC的特点
- 是最早一批真正把完整的容器技术用一组简易使用的工具和模板来极大简化容器技术使用的方案
- 虽然简化了容器技术的使用,但复杂程度并没有显著降低,因为需要学习LXC的一组命令工具
- 由于内核的创建都是通过命令实现,通过批量命令实现数据迁移并不容易
- 隔离性没有虚拟机那么强大
LXC与Docker的关系
后来出现了Docker,从一定程度上来说,Docker就是LXC的增强版。
通过 LXC 完成容器的创建,体会容器技术,并了解 Docker 并不是容器的唯一实现。
- 自 Docker 0.9 版本起,Docker 除了继续支持 LXC 外,还引入了自家的 libcontainer,旨在打造更通用的底层容器虚拟化库。
- 如今的 Docker 基本已使用 libcontainer 而非 LXC。
基础指令
lxc-checkconfig:检查系统环境是否满足容器使用要求。
格式:lxc-checkconfig
lxc-create:创建 LXC 容器。
格式:lxc-create -n NAME -t TEMPLATE_NAME [-- template-options]
lxc-start:启动容器。
格式:lxc-start -n NAME -d
lxc-ls:列出所有容器,-f 表示打印常用信息。
格式:lxc-ls -f
lxc-info:查看容器相关的信息。
格式:lxc-info -n NAME
lxc-attach:进入容器执行命令
格式:lxc-attach --name=NAME [- COMMAND]
lxc-stop:停止运行中的容器
格式:lxc-stop -n NAME
lxc-destroy:删除已停止的容器
格式:lxc-destroy -n NAME
安装LXC
CentOS:
-
sudo yum -y install epel-release sudo yum -y install lxc lxc-templates bridge-utils lxc-libs libcgroup libvirt lxc-extra debootstrap systemctl status lxc sudo systemctl start lxc sudo systemctl start libvirtd systemctl status lxc systemctl status libvirtd```
Ubuntu:
-
sudo apt install lxc lxc-templates bridge-utils -y systemctl status lxc
容器创建
- 创建容器
检查lxc状态信息
systemctl status lxc
lxc-checkconfig
创建容器:
lxc-create -t ubuntu --name host1 -- -r xenial -a amd64
-
-t:指定容器模版,所支持的模版在
/usr/share/lxc/templates
里,如下:
-
-name:指定容器名称
-
-r:指定模板版本
-
-a:指定cpu架构
运行结果:
查看容器状态
在这里就多了一个host1,默认为stop停止状态。下面lxchost1是之前创建的这里不用关心。
- 运行容器
lxc-start -n lxchost1 -d
-n:指定主机名
-d:后台运行
- 进入容器
方法一:ssh 用户名@IP地址
,然后输入密码即可。
方法二:lxc-attach -n host1 --clear-env -- /bin/bash
,即在容器host1里执行/bin/bash指令,–clear-env 作用是不带宿主机的环境变量。
- 容器停止删除
停止容器:lxc-stop -n host1
删除容器:lxc-destroy -n host1
可以用lxc-ls -f
观察容器状态