当前位置: 首页 > news >正文

Docker基础--LXC容器化实战(包含部分命令)

目录

容器虚拟化基础之 LXC

LXC 是什么?

LXC 容器

基础知识

LXC 的常用命令如下:

lxc-checkconfig

lxc-create

lxc-start

lxc-ls

lxc-info

lxc-attach

lxc-stop

lxc-destory

安装 LXC

Ubuntu 安装

CentOS 安装

LXC 容器操作实战


容器虚拟化基础之 LXC

LXC 是什么?

LXC(LinuX Containers)Linux 容器,一种操作系统层虚拟化技术,为 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-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-destory

删除处于停机状态的容器;

格式:lxc-destory -n NAME

安装 LXC

Ubuntu 安装

安装前执行检查看下是否需要卸载,如果需要卸载,执行下面的命令完成卸载,不需 要直接到第 2 步

#一、检查是否安装。清理资源

systemctl status lxc

lxc-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 lxc

CentOS 安装

安装前执行检查看下是否需要卸载,如果需要卸载,执行下面的命令完成卸载,不需 要直接到第 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 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 是否运行

systemctl status lxc

2.检查 lxc 的功能支持情况

lxc-checkconfig

3. 查看 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 的命令,注意模板需要使用 download:lxc-create --name centos7 --template=download -- --dist=centos --release=7 --arch=amd64

/var/run/docker/netns# lxc-create -t ubuntu --name lxchost1 -- -r xenial -a amd64

5. 下载安装完所有软件包后,LXC 容器镜像就创建完成了,你可以看到默认的登录 界面。容器被放到 /var/lib/lxc/ 这个目录下,容器的根文件系统放在 /var/lib/lxc//rootfs 目录下。创建过程中下载的软件包保存在 /var/cache/lxc 目录下面,当你想另外建一个一样的容器时,可以省去很多下载时间。

ll /var/lib/lxc/lxchost1/

ll /var/cache/lxc/

6.查看创建的容器信息

lxc-ls -f

7. 启动容器,我们可以看到容器状态为运行中

lxc-start -n lxchost1 -d

lxc-ls -f

8. 查看容器的详细信息

lxc-info -n lxchost1

9. 容器 ip 为 10.0.3.248,我们通过 ssh 进入容器,查看 ip 地址,磁盘挂载信息,目 录信息和宿主机都不一样

ssh ubuntu@10.0.3.248

ip addr

10.在容器外面执行命令

lxc-attach -n lxchost1 --clear-env -- echo "Hello bit"

11. 停止容器

lxc-stop -n lxchost1

lxc-ls -f

12. 删除容器

lxc-destroy -n

lxc-ls -f


[user1@iZ5waahoxw3q2bZ ~]$ cat /etc/*release* CentOS Linux release 7.6.1810 (Core) Derived from Red Hat Enterprise Linux 7.6 (Source) NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" CentOS Linux release 7.6.1810 (Core) CentOS Linux release 7.6.1810 (Core) cpe:/o:centos:centos:7

感谢你的观看,期待我们下次再见!

http://www.jsqmd.com/news/852726/

相关文章:

  • 2026年4月国内热门的mpp电力管企业推荐,双壁波纹管/七孔梅花管/钢带波纹管/pe管,mpp电力管厂家哪家好 - 品牌推荐师
  • 上海昆仑腕表去哪修不被宰?金桥系列泡泡镜保养收费揭秘:小众高端表的 “独家” 养护方案 - 亨得利官方维修中心
  • 基于8ms平台的嵌入式GUI开发实践:智能家居86盒UI设计与实现
  • 自动化AI算法训练服务器DLTM训推一体工作站让企业轻松自建AI能力
  • 从MATLAB到空口信号:Xilinx Zynq Z-7020 + AD936x射频板的软硬件协同设计入门
  • Umi-OCR完整指南:免费离线OCR软件的终极使用教程
  • 乌鲁木齐GEO优化公司推荐:新AI 搜索时代的企业增长新引擎 - 品牌评测官
  • 别再死记硬背公式了!用VisionMaster的N点标定,手把手教你搞定相机和机械手‘对齐’
  • 2026年视频播放器选型指南:8款主流播放器横向对比,硬解/格式/性能全测评(附工具大全)
  • 告别‘Try Again’:手把手教你用x32dbg字符串搜索定位并破解软件注册验证
  • JDK 17 远程调试连不上 5005:从 attach timeout 到 JDWP 监听地址变更
  • 别再搞混了!设备上那个RJ45口是Console调试口,不是网口(附电路设计详解)
  • 告别环境冲突!用Miniconda3在Windows上为不同Python项目创建独立开发环境(保姆级图文)
  • 【诊断进阶】从Event到DTC:DEM故障管理核心机制全解析
  • Midjourney年费优惠背后的算法逻辑:为什么11月第3周是最佳下单日?(基于127次API调用与客服响应时延分析)
  • TI WEBENCH滤波器设计工具:从理论到电路的一站式自动化实现
  • 告别手动配置JRE!用JDK 18内置工具一键生成,并关联到IDEA项目
  • 消防工程企业如何做新媒体AI智能获客?2026全网推广指南与服务商盘点 - 优质企业观察收录
  • 别再只用scatter了!用Matlab绘制带密度信息的散点图,让你的数据可视化更专业
  • 从VGG到ResNet:为什么你的100层网络效果还不如20层?聊聊梯度消失与‘捷径’的艺术
  • 2026 机器人即服务(RaaS)主流供应商全景评测 —— 万机易租领跑全场景轻量化升级 - 奔跑123
  • 告别命令行恐惧:用DataGrip在Ubuntu 22.04的MySQL里建库、授权、查数据,一篇搞定
  • 怎么远程操作另一台手机 手机能远程控制别的手机吗
  • 健身房私教管理系统 (二):多角色路由分发与实体扩展表设计
  • 长文本处理技术综述:突破上下文限制
  • BBH基准测试结果反常?DeepSeek-R1推理延迟飙升47%的真实原因,工程师已连夜回滚
  • 2026年Word生成完全指南:4种方法从零到自动化,效率提升10倍
  • VAP技术深度解析:从硬件解码到跨平台特效动画的完整实现方案
  • 2026年的专业床垫,从平价到高端究竟该怎么选?
  • 新手避坑指南:用STM32CubeMX和Keil5给NUCLEO-F411RE点亮0.96寸OLED(附完整工程源码)