云时代【5】—— LXC 与 容器
三、LXC
(一)基本介绍
LXC(LinuX Containers)是Linux 容器,一种操作系统层虚拟化技术,为 Linux 内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container), 包含:应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的命名空间 和 共享 API 来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境, 使得 Linux 用户可以容易的创建和管理系统或应用容器。
LXC 是最早一批真正把完整的容器技术用一组简易使用的工具和模板来极大的简化了容器技术使用的一个方案。它虽然极大的简化了容器技术的使用,但比起直接通过内核调用来使用容器技术, 其复杂程度其实并没有多大降低,主要是以下的三个原因:
- 必须要学会 LXC 的一组命令工具
- 由于内核的创建都是通过命令来实现的,需要通过批量命令实现数据迁移并不容易
- 其隔离性也没有虚拟机那么强大。
因此后来就出现了 Docker,所以从一定程度上来说,Docker 就是 LXC 的增强版。
(二)相关 Linux 指令
systemctl status lxc # 可见检查是否安装
# 如果有需要先停止再清理
lxc-ls -f # 遍历所有容器
lxc-stop -n name-xxx # 停止对应的容器
lxc-destroy -n name-xxx # 删除对应的容器
# 如果有需要先停止再清理
lxc-ls -f # 遍历所有容器
lxc-stop -n name-xxx # 停止对应的容器
lxc-destroy -n name-xxx # 删除对应的容器
apt-get purge --auto-remove lxc lxc-templates
apt install lxc lxc-templates bridge-utils -y
# lxc 主程序包
# lxc-templates lxc的配置模板
# bridge-utils 网桥管理工具
实战:使用 LXC 操作容器
lxc-checkoutconfig
cd /usr/share/lxc/templates # 存放模板的位置
# 第一次创建会比较久,主要与容器的类型有关
lxc-create -t ubuntu --name lxctest -- - r xenial -a amd64
# -t 容器类型
# --name 容器名字
# -r 指定使用 xenial 版本的 Ubuntu
# -a amd64架构
lxc-ls -f
lxc-start -n lxchost1 -d
# 方式1:使用SSH
ssh ubuntu@IP
lxc-attach -n lxchost1 --clear-env -- /bin/bash
lxc-ls -f # 查看
lxc-stop -n lxchost1 # 停止
lxc-ls -f # 查看
lxc-detroy -n lxchost1 # 删除
lxc-ls -f