0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux容器技术的原理是怎么样的应该如何使用

Wildesbeast 来源:网络整理 作者:马哥Linux 2020-04-06 10:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.1 隔离和共享

在一个多员共用的开发环境或者一台服务器运行多个逻辑隔离的服务器进程。谁的运行环境也不希望影响到另一个谁。也就是一个物理机器需要虚拟化出多个环境或者容器。通过提供一种创建和进入容器的方式,操作系统让应用程序就像在独立的机器上运行一样,但又能共享很多底层的资源。

1.2 虚拟化vs容器

传统的虚拟化技术是通过硬件模拟或者操作系统软件实现,而容器技术可以比传统虚拟化更轻量级。

容器在提供隔离的同时,还通过共享这些资源节省开销,这意味着容器比真正的虚拟化的开销要小得多。例如,可以有效地共享公共文件(比如 glibc)的页缓存,因为所有容器都使用相同的内核,而且所有容器还常常共享相同的 libc 库(取决于容器配置)。这种共享常常可以扩展到目录中其他不需要写入内容的文件。

和传统虚拟化相比,容器启动很快,由于共享系统资源,一台主机可以运行上千个容器,并且容器镜像用类似git分发思想,用户更容易创建,分发,更新存储这些镜像。

1.3 前世和今生

今生是docker大流行的时代,而前世就是早于1982年的chroot工具,以及后面经过改进并且现在还在使用的lxc技术。早期的docker的代码实现基于LXC(0.9之前)。

Linux容器功能是基于 cgroups 和 Namespace 来实现的. 所以要了解 Linux 容器必须先了解 cgroup 和 Namespace.

2.1、cgroups(控制组)

cgroups 是将进程分组管理的内核功能.通过cgroups可以隔离进程, 同时还可以控制进程的资源占用(CPU, 内存等等)情况在操作系统底层限制物理资源,起到 Container 的作用。进程可用的cpu资源由cpuset指定。

2.2、Namespace (命名空间)

Namespace让每个进程组有独立的PID, IPC和网络空间.Namespace通过 clone系统调用来实现的.

clone系统调用的第3个参数flags就是通过设置Namespace来划分资源的.

LXC依赖于epel-release的安装,EPEL(Extra Packages for Enterprise Linux)是Fedora 社区打造提供高质量软件包的项目,相当于一个第三方源。

yum install epel-release -y

然后再安装LXC相关的工具包,和创建容器所需要的模板lxc-templates

yum install lxc lxc-templates -y

安装完使用lxc-checkconfig检查下操作系统对容器技术的支持

3.1 LXC工具包概览

LXC所有的操作工具api都在这里,可以对LXC进行相应的操作。

LXC所有命令

3.2 创建一个容器

使用预定义的模板创建一个容器。它会根据模板设置自动下载依赖环境包并安装。

lxc-create -n 容器名称 -t 模板(不需要加 lxc)lxc-create -n mariolu-console -t centos

模板就是第3节安装的lxc-templates工具包。所有模板放在这个目录下/usr/share/lxc/templates/

LXC的所有模板

跟chroot思想一样,安装完容器,所有的主机文件夹根目录被重定义到/var/lib/lxc/mariolu-console

重新定义的root路径

3.3 启动容器

就像安装完机器后,我们要开机启动服务器。Lxc也有相应的步骤就是

lxc-start -n mariolu-console

启动界面

但是我们很快就发现,启动需要密码,但是使用容器创建没有输入密码,难道是有什么默认密码吗

在这里并不能看到root密码,密码或者被用x字符替代,或者是一串hash码。

cat /var/lib/lxc/mariolu-console/rootfs/etc/shadowchroot /var/lib/lxc/mariolu-console/rootfs passwd

网络搜索没找到默认密码,但是找到了这么一句话:

The root password is set up as expired and will require it to be changedat first login, which you should do as soon as possible. If you lose the root password or wish to change it without starting the container, you can change it from the host by running the following command (which will also reset the expired flag)

chroot/var/lib/lxc/sspl-test/rootfspasswd

YES! Give Me Five! 这个告诉我们重置密码的命令。我们新开一个窗口,完成密码的重置,然后重新切换回原来的窗口,这时候就可以用密码愉快的登陆了。

登录成功

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11810

    浏览量

    219514
  • 服务器
    +关注

    关注

    14

    文章

    10345

    浏览量

    91739
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文搞懂Linux权限体系

    Linux权限体系是运维工作的基础中的基础。无论你管理的是单机还是集群,权限问题导致的故障占总故障量的相当比例。本文从一线运维视角出发,系统讲解Linux权限模型的核心概念、常见场景、排障方法以及安全最佳实践。阅读本文后,你应该
    的头像 发表于 04-09 10:04 169次阅读

    SDN 容器云通信技术再突破:云边云科技斩获国家发明专利授权

    前言在云原生技术全面普及的当下,容器化部署、混合云组网、跨地域云资源调度已成为企业数字化转型的标配,而软件定义网络(SDN)与容器技术的深度融合,始终是解决云平台远程通信痛点的核心赛道
    的头像 发表于 03-24 11:25 220次阅读
    SDN <b class='flag-5'>容器</b>云通信<b class='flag-5'>技术</b>再突破:云边云科技斩获国家发明专利授权

    Linux内核驱动开发的技术核心精要

    嵌入式Linux驱动开发是连接硬件与操作系统的关键环节。随着内核演进(如Linux 6.13)和硬件复杂度提升,开发者需掌握并发控制、中断分层、内存管理、设备树、调试工具等核心知识。本文提炼出驱动
    发表于 03-10 13:56

    如何在2026年Rocky Linux(8、9和10)上安装Docker

    Docker 已成为现代应用部署、开发和基础设施自动化的核心技术。如果你在服务器或VPS上运行Rocky Linux,学会在Rocky Linux上安装Docker是你2026年能掌握的最宝贵技能
    的头像 发表于 01-12 17:21 1819次阅读

    华为发布并开源创新AI容器技术Flex:ai

    11月21日,2025AI容器应用落地与发展论坛在上海举行。华为公司副总裁、数据存储产品线总裁周跃峰博士在论坛上正式发布AI容器技术——Flex:ai,同时,华为联合上海交通大学、西安交通大学与厦门大学共同宣布,将此项产学合作成
    的头像 发表于 11-25 15:34 765次阅读

    Vishay Vitramon VJ系列多层陶瓷片式电容器技术解析

    Vishay/Vitramon VJ系列陶瓷片式电容器是表面贴装多层电容器,设计用于商业应用。此系列陶瓷片式电容器采用C0G(NP0)技术,具有超稳定的电介质,可提供非常低的电容温度系
    的头像 发表于 11-11 11:10 1088次阅读

    多层陶瓷电容器与超级电容器的区别

    文章对比了多层陶瓷电容器(MLCC)和超级电容器,强调其在结构、能量管理及应用上的差异,前者快、薄,后者强、大。
    的头像 发表于 10-26 09:18 1406次阅读
    多层陶瓷电<b class='flag-5'>容器</b>与超级电<b class='flag-5'>容器</b>的区别

    学习Linux应该从哪里开始?

    、交叉编译、网络栈、文件系统……到底从哪里开始学,才能既不绕弯路,又能学得“有感觉”? 今天, 深圳市钡铼技术有限公司 就来带你拆解这个问题。 一、先理解:Linux 到底是什么? 很多人学 Linux,一上来就打开虚拟机敲命令
    的头像 发表于 10-16 09:51 563次阅读
    学习<b class='flag-5'>Linux</b><b class='flag-5'>应该</b>从哪里开始?

    Linux权限体系解析

    你真的了解Linux权限吗?大多数人只知道rwx,但Linux的权限体系远比你想象的复杂和强大。今天我们深入探讨Linux的12位权限体系,这是每个运维工程师都应该掌握的核心知识。
    的头像 发表于 07-23 16:57 1061次阅读

    超级电容器模组容量偏差的连锁效应与均衡技术

    超级电容器模组因容量偏差引发效率下降和寿命缩短,需通过电压均衡技术优化。
    的头像 发表于 07-23 09:39 768次阅读
    超级电<b class='flag-5'>容器</b>模组容量偏差的连锁效应与均衡<b class='flag-5'>技术</b>

    一文掌握Linux命令

    作为一名运维工程师,熟练掌握Linux命令是基本功中的基本功。无论是日常工作中的系统维护,还是面试时的技术考核,Linux命令都是绕不开的核心技能。本文将从实战角度出发,系统梳理运维工程师必须掌握的
    的头像 发表于 07-22 15:23 711次阅读

    华为工程师总结Linux笔记

    Linux内核命名规则。 1.1 为什么要学习 Linux 我们为什么要学习 Linux?我们目前的处境是什么?我们想达到什么的目标?在谈到这三个问题时,相信每个人都有自己的答
    发表于 07-14 15:28

    Linux网络管理的关键技术和最佳实践

    在大型互联网企业中,Linux网络管理是运维工程师的核心技能之一。面对海量服务器、复杂网络拓扑、高并发流量,运维人员需要掌握从基础网络配置到高级网络优化的全套技术栈。本文将结合大厂实际场景,深入解析Linux网络管理的关键
    的头像 发表于 07-09 09:53 1111次阅读

    创龙 瑞芯微 RK3562 国产 2GHz 四核A53 工业开发板—Docker容器部署方法说明

    Docker是一个开源的应用容器引擎,让开发者可打包他们的应用以及依赖包至一个可移植的镜像中,然后发布至任何流行的Linux或Windows机器上,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间
    的头像 发表于 07-03 11:00 653次阅读
    创龙 瑞芯微 RK3562 国产 2GHz 四核A53 工业开发板—Docker<b class='flag-5'>容器</b>部署方法说明

    开源系统适配:聚徽分享国产工控平板在 Linux / 鸿蒙系统下的技术优化

    工控平板进行技术优化,实现与 Linux、鸿蒙系统的高效适配,成为行业关注的焦点。 一、Linux 系统下国产工控平板的技术优化 (一)内核裁剪与定制
    的头像 发表于 06-13 16:29 1289次阅读