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/rootfs passwd

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

登录成功

好啦!今天的分享到这里就结束了,希望大家持续关注马哥教育官网,每天都会有大量优质内容与大家分享!声明:文章转载于网络,版权归原作者所有!

linux原理 培训,Linux容器技术原理和使用相关推荐

  1. 深入浅出学习透析Nginx服务器的架构分析及原理分析「底层技术原理+运作架构机制」

    Nginx再次回顾 也许你已经忘记了Nginx是做什么的?我来再次给你夯实一下概念. 多协议反向代理 Nginx是个高性能的Web和反向代理服务器及HTTP服务器,它能反向代理HTTP,HTTPS和邮 ...

  2. (3)HDFS原理与高可用技术原理介绍

    专栏目录 (1)大数据和应用场景介绍 (2)大数据技术综述总结 (3)HDFS原理与高可用技术原理介绍 (4)Yarn架构.资源管理原理和运维技术介绍 (5)Kafka原理和高可用介绍 1.HDFS简 ...

  3. Docker容器技术原理(三)rootfs

    前言 我们之前介绍过了 Linux 最基础的两种技术,Namespace 和 Cgroups.Namespace 的作用是隔离,它可以让进程只能看到 Namespace 里面的世界:Cgroups 的 ...

  4. 微信语音技术原理_语音识别的技术原理是什么?

    鉴于传统架构的语音识别方法在其他的回答中已经有了详细的介绍,这里主要介绍end-to-end语音识别架构,主要涉及到RNN神经网络结构以及CTC. Outline: 1. 语音识别的基本架构 2. 声 ...

  5. linux指纹登录实现原理,指纹识别技术原理与基于Linux系统的指纹识别门禁系统设计...

    指纹作为人体的身体特征,具有唯一性.稳定性和不易盗用等特点.随着指纹识别理论逐渐成熟.指纹采集工具这一难题得到解决,指纹识别已经成为目前最广泛应用的生物识别之一,逐渐取代了传统的认证识别方式,广泛应用 ...

  6. linux有哪些容器技术,Linux容器技术和docker

    发展历程: 容器技术最早出现在FreeBSD上叫做 jail,将一个进程放入jail中运行,不管这个进程在其中发生怎样的错误都不会影响到系统上其他进程的运行 jail技术在Linux中的实现叫做vse ...

  7. Docker技术原理

    一.Docker架构 Docker包括三个基本概念: 镜像(Image): Docker 镜像(Image),就相当于是一个 root 文件系统.比如官方镜像 ubuntu:16.04 就包含了完整的 ...

  8. 卫星定位原理以及室内定位技术

    卫星定位原理以及室内定位技术 原理 根据差分GPS基准站发送的信息方式可将差分GPS定位分为三类,即:位置差分.伪距差分和相位差分.这三类差分方式的工作原理是相同的,即都是由基准站发送改正数,由用户站 ...

  9. 浅谈搜索引擎技术原理与架构

    转载自:https://www.cnblogs.com/faruxue/p/4932009.html 搜索引擎是我们非常熟悉的互联网产品,上网都离不开搜索,毫无疑问,在pc端,是多数流量的入口.大家都 ...

最新文章

  1. Java程序内存分析
  2. 整数数组的定义,然后输入一个整数X,假定X不在这个数组,返回小于X位置的最大数目i而超过X位置的最小数目j...
  3. php datatype=quot;requirequot;,我的问题谁能帮我解决一下??
  4. python网课观后感_Python OpenOPC的学习观后感
  5. java中catalina.out_如何控制Tomcat的catalina.out的大小
  6. HTTP 知识点之一:头部解释(转)
  7. C++ 类的隐式转换
  8. MySQL安装 - Linux7下. rpm方式安装
  9. 有效数据包含外部数据_DuckDB FDW(外部数据包装器)来了
  10. 真香 | 谁说的 StringJoiner 不好!真香警告……
  11. php转化为2位小数的数字,学习猿地-php 转化为两位小数的方法
  12. android通过点击播放视频,Android通过MediaPlayer实现播放视频实例
  13. 快手无水印下载(python小爬虫)
  14. 火狐浏览器启动参数_火狐浏览器启动参数介绍
  15. 什么是EDM营销?EDM营销和一般营销方式的区别分析
  16. 易建联惨遭雄鹿霸王硬上弓!!!
  17. 微软语言包实现汉字转拼音
  18. JS 小坑 - AJAX请求的小坑,请求接口404
  19. 【干货】以太坊常用网址整理
  20. 使用XPC与X-Plane9进行通信

热门文章

  1. Mac nginx PCRE install ngnix
  2. 活学巧用电脑上网实例入门
  3. 红外线摄像机的选择与使用及原理
  4. PartitionMotionSearch()函数
  5. VC Ws2_32.lib
  6. java compile_java中的CompileAPI入门及使用
  7. java .listfiles_Java File.listFiles()
  8. 《算法导论》——MergeSort
  9. 机器学习sklearn的快速使用--周振洋
  10. 【error】Invalid ADAPTORNAME specified. Type 'imaqhwinfo' for a list of available ADAPTORNAMEs.