Docker基础--LXC容器化实战(包含部分命令) 目录容器虚拟化基础之 LXCLXC 是什么LXC 容器基础知识LXC 的常用命令如下lxc-checkconfiglxc-createlxc-startlxc-lslxc-infolxc-attachlxc-stoplxc-destory安装 LXCUbuntu 安装CentOS 安装LXC 容器操作实战容器虚拟化基础之 LXCLXC 是什么LXCLinuX ContainersLinux 容器一种操作系统层虚拟化技术为 Linux 内核容 器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器Container 内含应用软件本身的代码以及所需要的操作系统核心和库。透过统一的名字空间和 共享 API 来分配不同软件容器的可用硬件资源创造出应用程序的独立沙箱运行环境 使得 Linux 用户可以容易的创建和管理系统或应用容器。LXC 是最早一批真正把完整的容器技术用一组简易使用的工具和模板来极大的简化了 容器技术使用的一个方案LXC 虽然极大的简化了容器技术的使用但比起直接通过内核调用来使用容器技术 其复杂程度其实并没有多大降低因为我们必须要学会 LXC 的一组命令工具且由于 内核的创建都是通过命令来实现的通过批量命令实现数据迁移并不容易。其隔离性 也没有虚拟机那么强大。后来就出现了 docker所以从一定程度上来说docker 就是 LXC 的增强版。LXC 容器实战目的通过 lxc 来完成容器的创建体会容器并了解 docker 并不是容器的唯一实现。自 docker 0.9 版本起docker 除了继续支持 LXC 外还开始引入自家的 libcontainer 试图打造更通用的底层容器虚拟化库。如今的 docker 基本上都已经是使用 libcontainer 而非 LXC 了。基础知识LXC 的常用命令如下lxc-checkconfig检查系统环境是否满足容器使用要求格式lxc-checkconfiglxc-create创建 lxc 容器格式lxc-create -n NAME -t TEMPLATE_NAME [-- template-options]lxc-start启动容器格式lxc-start -n NAME -dlxc-ls列出所有容器,-f 表示打印常用的信息 格式lxc-ls -flxc-info查看容器相关的信息格式lxc-info -n NAMElxc-attach进入容器执行命令格式lxc-attach --nameNAME [-- COMMAND]lxc-stop停止容器格式lxc-stop -n NAMElxc-destory删除处于停机状态的容器格式lxc-destory -n NAME安装 LXCUbuntu 安装安装前执行检查看下是否需要卸载如果需要卸载执行下面的命令完成卸载不需 要直接到第 2 步#一、检查是否安装。清理资源systemctl status lxclxc-stop -n xxx # lxc-ls -f 遍历所有容器,停止运行的容器lxc-destroy -n xxx # 删除对应的容器#二、 卸载软件apt-get purge --auto-remove lxc lxc-templates#三、 检查服务已经没有该服务了systemctl status lxc没有安装的话执行下面的命令完成安装#一、安装#lxc 主程序包#lxc-templates lxc 的配置模板#bridge-utils 网桥管理工具apt install lxc lxc-templates bridge-utils -y#二、检查服务是否正常运行systemctl status lxcCentOS 安装安装前执行检查看下是否需要卸载如果需要卸载执行下面的命令完成卸载不需 要直接到第 2 步# 一、检查是否安装。清理资源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 lxcCentOS 安装 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 libcgrouplibvirt lxc-extra debootstrap#三、启动和检查#如果未运行输入以下命令完成启动systemctl start lxc #启动 lxc 服务systemctl start libvirtd #启动虚拟机监控服务systemctl status lxcsystemctl status libvirtdLXC 容器操作实战1. 检查 lxc 是否运行systemctl status lxc2.检查 lxc 的功能支持情况lxc-checkconfig3. 查看 lxc 提供的容器模板ls /usr/share/lxc/templates/4.创建一个lxc虚拟主机这个命令就会下载安装指定环境下的软件包创建新容器。 整个过程需要时间较长与容器的类型有关。#创建 Ubuntu LXC 容器-t 指定模板容器-n 指定要创建的容器名下面创建的是 ubuntu#Centos 上创建 centos 的命令lxc-create -t centos --name centos1 ----release 7 --archx86_64#Ubuntu 上创建 centos 的命令注意模板需要使用 downloadlxc-create --name centos7 --templatedownload -- --distcentos --release7 --archamd64/var/run/docker/netns# lxc-create -t ubuntu --name lxchost1 -- -r xenial -a amd645. 下载安装完所有软件包后LXC 容器镜像就创建完成了你可以看到默认的登录 界面。容器被放到 /var/lib/lxc/ 这个目录下容器的根文件系统放在 /var/lib/lxc//rootfs 目录下。创建过程中下载的软件包保存在 /var/cache/lxc 目录下面当你想另外建一个一样的容器时可以省去很多下载时间。ll /var/lib/lxc/lxchost1/ll /var/cache/lxc/6.查看创建的容器信息lxc-ls -f7. 启动容器我们可以看到容器状态为运行中lxc-start -n lxchost1 -dlxc-ls -f8. 查看容器的详细信息lxc-info -n lxchost19. 容器 ip 为 10.0.3.248我们通过 ssh 进入容器查看 ip 地址磁盘挂载信息目 录信息和宿主机都不一样ssh ubuntu10.0.3.248ip addr10.在容器外面执行命令lxc-attach -n lxchost1 --clear-env -- echo Hello bit11. 停止容器lxc-stop -n lxchost1lxc-ls -f12. 删除容器lxc-destroy -nlxc-ls -f[user1iZ5waahoxw3q2bZ ~]$ cat /etc/*release* CentOS Linux release 7.6.1810 (Core) Derived from Red Hat Enterprise Linux 7.6 (Source) NAMECentOS Linux VERSION7 (Core) IDcentos ID_LIKErhel fedora VERSION_ID7 PRETTY_NAMECentOS Linux 7 (Core) ANSI_COLOR0;31 CPE_NAMEcpe:/o:centos:centos:7 HOME_URLhttps://www.centos.org/ BUG_REPORT_URLhttps://bugs.centos.org/ CENTOS_MANTISBT_PROJECTCentOS-7 CENTOS_MANTISBT_PROJECT_VERSION7 REDHAT_SUPPORT_PRODUCTcentos REDHAT_SUPPORT_PRODUCT_VERSION7 CentOS Linux release 7.6.1810 (Core) CentOS Linux release 7.6.1810 (Core) cpe:/o:centos:centos:7感谢你的观看期待我们下次再见