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
    +关注

    关注

    87

    文章

    11302

    浏览量

    209431
  • 服务器
    +关注

    关注

    12

    文章

    9146

    浏览量

    85389
收藏 人收藏

    评论

    相关推荐

    Jtti:Linux中虚拟文件系统和容器化的关系

    Linux中,虚拟文件系统(VFS)和容器技术之间有密切的关系。容器化是指通过使用容器来运行应用程序,而
    的头像 发表于 11-27 15:38 148次阅读

    如何限制容器可以使用的CPU资源

    默认情况下容器可以使用的主机 CPU 资源是不受限制的。和内存资源的使用一,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机
    的头像 发表于 10-24 17:04 226次阅读
    如何限制<b class='flag-5'>容器</b>可以使用的CPU资源

    无极电容器和有极电容器吗,无极电容器和有极电容器的区别

    无极电容器和有极电容器在多个方面存在显著的差异,它们并不一。以下是两者之间的主要区别:
    的头像 发表于 10-01 16:42 958次阅读

    Linux内核测试技术

    。内核测试技术是实现这一目标的关键手段。本文将详细介绍 Linux 内核测试的各种技术,包括单元测试、集成测试、功能测试和性能测试等,并讨论不同测试方法的优缺点及其适用场景。
    的头像 发表于 08-13 13:42 492次阅读
    <b class='flag-5'>Linux</b>内核测试<b class='flag-5'>技术</b>

    实时Linux:解锁高效能和可靠性的关键

    实时Linux结合容器技术,提供了高度灵活和可扩展的解决方案,特别适合于需要快速响应和高可靠性的应用场景。实时Linux能够保证关键任务及时执行,而
    的头像 发表于 08-08 11:21 279次阅读
    实时<b class='flag-5'>Linux</b>:解锁高效能和可靠性的关键

    ARM平台实现Docker容器技术

    及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一管理基础结构
    发表于 07-25 14:36

    ARM平台实现Docker容器技术

    及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一管理基础结构
    发表于 07-17 11:05

    微软WSL更新支持IPv6流量透过Linux

    据悉,微软近期对Windows Subsystem for Linux(WSL)进行了2.2.2版本更新,包含多项优化改进。其中最引人注目的便是新增的nft规则,允许IPv6数据包经过Linux容器传输。
    的头像 发表于 04-08 10:23 978次阅读

    更换低压电容器应该注意哪些问题

    低压电容器是电力系统中常见的电气元件,其作用是存储电能并提供稳定电压。在使用过程中,当低压电容器出现故障或达到寿命,就需要及时更换。然而,更换低压电容器并不是一件简单的事情,需要注意许多问题。
    的头像 发表于 03-22 14:18 761次阅读
    更换低压电<b class='flag-5'>容器</b><b class='flag-5'>应该</b>注意哪些问题

    单相电容器和三相电容器的效果一

    单相电容器和三相电容器是电力系统中常用的电容器类型。它们都能够提供并改善电力系统的功率因数、电压质量以及电能质量。虽然两者都有类似的功能,但在某些方面存在差异。
    的头像 发表于 03-18 14:16 848次阅读

    ARM平台实现Docker容器技术

    什么是Docker? (1)Docker的架构 Docker是一个开源的应用容器引擎,让开发者可打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上
    的头像 发表于 03-07 13:48 803次阅读
    ARM平台实现Docker<b class='flag-5'>容器</b><b class='flag-5'>技术</b>

    容器充放电电流方向是怎么的?

    容器充放电电流方向是怎么的? 电容器充放电电流方向是指在电容器充电和放电过程中电流所流动的方向。在电容器的充电过程中,电流的方向与正极到
    的头像 发表于 02-03 09:13 8135次阅读

    用于连接去耦电容器的过孔配置

    解决上述问题的方法是提供能够提供瞬态电流的电荷源。这通常是通过将去耦电容器放置在非常靠近每个逻辑 IC 的位置来实现的。我们应该始终记住,电路电源布线仅补充去耦电容器中的电荷,并且应该
    发表于 01-18 15:25 745次阅读
    用于连接去耦电<b class='flag-5'>容器</b>的过孔配置

    美格智能LXC容器化解决方案,轻松玩转多系统虚拟化

    美格智能LXC(Linux Container)容器化解决方案专为各类物联网终端设备设计,基于LXC内核,通过轻量化的容器技术,让应用程序可以在不同的环境中运行,可以满足智能汽车、机器
    的头像 发表于 01-17 17:16 571次阅读
    美格智能LXC<b class='flag-5'>容器</b>化解决方案,轻松玩转多系统虚拟化

    轨道电路无功补偿用哪种电容器好?

    在轨道电路中,无功补偿是一个重要的技术环节。然而,要实现有效的无功补偿,选择合适的电容器至关重要。那么,究竟应该选用哪种电容器呢?
    的头像 发表于 01-12 14:23 536次阅读
    轨道电路无功补偿用哪种电<b class='flag-5'>容器</b>好?