加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 云计算 > 正文

Linux容器技术原理和运用

发布时间:2022-07-18 12:34:05 所属栏目:云计算 来源:互联网
导读:1.1 隔离和共享 在一个多员共用的开发环境或者一台服务器运行多个逻辑隔离的服务器进程。谁的运行环境也不希望影响到另一个谁。也就是一个物理机器需要虚拟化出多个环境或者容器。通过提供一种创建和进入容器的方式,操作系统让应用程序就像在独立的机器上运
  1.1 隔离和共享
 
  在一个多员共用的开发环境或者一台服务器运行多个逻辑隔离的服务器进程。谁的运行环境也不希望影响到另一个谁。也就是一个物理机器需要虚拟化出多个环境或者容器。通过提供一种创建和进入容器的方式,操作系统让应用程序就像在独立的机器上运行一样,但又能共享很多底层的资源。
 
  1.2 虚拟化vs容器
  传统的虚拟化技术是通过硬件模拟或者操作系统软件实现,而容器技术可以比传统虚拟化更轻量级。
 
  和传统虚拟化相比,容器启动很快,由于共享系统资源,一台主机可以运行上千个容器,并且容器镜像用类似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
 
 

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读