一、实战目的
通过 lxc 来完成容器的创建,体会容器并了解 docker 并不是容器的唯一实现。
自 docker 0.9 版本起,docker 除了继续支持 LXC 外,还开始引入自家的 libcontainer,试图打造更通用的底层容器虚拟化库。如今的 docker 基本上都已经是使用 libcontainer 而非 LXC 了。
二、基础知识
LXC 的常用命令如下:
1、lxc-checkconfig
检查系统环境是否满足容器使用要求。
格式:lxc-checkconfig
2、lxc-create
创建 lxc 容器。
格式:lxc-create -n NAME -t TEMPLATE_NAME [-- template-options]
3、lxc-start
启动容器。
格式:lxc-start -n NAME -d
4、lxc-ls
列出所有容器,-f 表示打印常用的信息。
格式:lxc-ls -f
5、lxc-info
查看容器相关的信息。
格式:lxc-info -n NAME
6、lxc-attach
进入容器执行命令。
格式:lxc-attach --name=NAME [-- COMMAND]
7、lxc-stop
停止容器。
格式:lxc-stop -n NAME
8、lxc-destory
删除处于停机状态的容器。
格式:lxc-destory -n NAME
三、安装 LXC(Centos)
安装前执行检查看一下是否需要卸载。如果需要卸载,执行下面的命令完成卸载,不需要的话就直接跳过。
# 一、检查是否安装。清理资源
systemctl status lxc #检查是否安装
lxc-stop -n xxx # lxc-ls -f 遍历所有容器,停止对应的容器
lxc-destroy -n xxx #删除对应的容器
# 二、 卸载软件
yum remove lxc lxc-templates lxc-libs lxc-extra libvirt
debootstrap
# 三、检查,提示服务不存在
systemctl status lxc
CentOS 安装 LXC,如果已经安装,可以检查下是否需要卸载,如果需要卸载执行 Centos 卸载 LXC。
# 一、 配置源
yum -y install epel-release #这个软件包里包含 epel yum 源和 GPG 的配置
# 二、 安装程序
# lxc 主程序包
# lxc-templates lxc 的配置模板
# bridge-utils 网桥管理工具 lxc-libs lxc 所需的库文件
# libcgroup cgroup 安装包
# libvirt 管理 Linux 的虚拟化功能所需的服务器端守护程序。 需要针对特定驱动程序的管理程序。
# debootstrap debootstrap 是 Debian 引导程序,它允许您将 Debian 基本系统(例如 Debian 或 Ubuntu)安装到当前正在运行的系统的目录中。
yum -y install lxc lxc-templates bridge-utils lxc-libs libcgroup libvirt lxc-extra debootstrap
#三、启动和检查
#如果未运行输入以下命令完成启动
systemctl start lxc #启动 lxc 服务
systemctl start libvirtd #启动虚拟机监控服务
systemctl status lxc
systemctl status libvirtd
四、LXC 容器操作实战
1、检查 lxc 是否运行
2、检查 lxc 的功能支持情况
3、查看 lxc 提供的容器模板
4、创建一个 lxc 虚拟主机
这个命令就会下载安装指定环境下的软件包,创建新容器。整个过程需要时间较长,与容器的类型有关。
#创建 Ubuntu LXC 容器,-t 指定模板容器,-n 指定要创建的容器名
#Centos 上创建 centos 的命令:lxc-create -t centos --name centos1 ----release 7 --arch x86_64
#Ubuntu 上创建 centos 的命令,注意模板需要使用 download:lxc-create --name centos7 --template=download -- --dist=centos --release=7 --arch=amd64
5、下载安装完所有软件包后,LXC 容器镜像就创建完成了
可以看到默认的登录界面。容器被放到:/var/lib/lxc/<容器名> 这个目录下,容器的根文件系统放在:/var/lib/lxc/<容器名>/rootfs 目录下。创建过程中下载的软件包保存在 /var/cache/lxc 目录下面,当你想另外建一个一样的容器时,可以省去很多下载时间。
6、查看创建的容器信息
7、启动容器,可以看到容器状态为运行中
8、查看容器的详细信息
9、可以看到容器 ip 为 192.168.122.191,通过 ssh 进入容器,查看 ip 地址,磁盘挂载信息,目录信息和宿主机都不一样
这里只展示容器内的信息: