目录
了解docker之前我们需要了解一些概念,对这些概念有一个清晰的认识会帮助我们轻松走进docker
1.基本概念
1.1云
许多服务器组成了一朵云
1.2云服务器
是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。
1.3云服务
提供服务器,提供数据库,提供存储服务
1.4云计算
1.4.1.什么是云计算
是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期。
简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。
开源的云计算软件:openstack(统计调度分配任务和算力)
1.4.2.云计算的三种服务模式
云计算的三种服务模式:IaaS、PaaS和SaaS - 之涣 - 博客园
IaaS
Infrastructure as a Service这层的作用是提供虚拟机或者其他资源作为服务提供给用户-->卖基础设施--》卖云服务器--》
阿里云,腾讯云,华为云,aws亚马逊云,Google云,azure云
PaaS
Platform as a Service组件服务(比如存储、cdn、直播等等)--》背后有一个公司搭建好了平台,我们去购买服务就可以
在平台里买软件
七牛云作为国内知名的云平台即服务(Paas)提供商,提供海量文件存储、CDN内容分发、视频点播、互动直播及机器数据智能分析与处理等服务,致力于以数据科技全面驱动数字化未来,
SaaS
Software as a Service这层的作用是将应用作为服务提供给客户。通过这种模式,用户只要接上网络,并通过浏览器,就能直接使用在云端上运行的应用,而不需要顾虑类似安装等琐事。--》Ps提供多人编辑文档,存储--》卖某个软件的使用权
wPS :金山公司推出的办公软件- -》word,excel, ppt等软件
Baas
BlockChain as a Service 买区块链服务
1.5容器
轻量级的虚拟机,更加节省资源(cpu,带宽,磁盘)的虚拟机
而docker 是提供容器技术的软件
k8s 是容器集群编排工具,可以管路很多台服务器上的docker的启动容器,实现容器的分布式管理,综合很多容器的软件。
1.6云原生
和k8s和promethues相关的技术
2.什么是docker
是一个开源的应用引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到安装了任何liunx发行版本的机器上
Docker是直接运行在宿主操作系统之上的一个容器,使用沙箱机制完全虚拟出一个完整的操作,容器之间不会有任何接口,从而让容器与宿主机之间、容器与容器之间隔离的更加彻底。每个容器会有自己的权限管理,独立的网络与存储栈,及自己的资源管理能,使同一台宿主机上可以友好的共存多个容器。
docker:码头个人,容器软件的名字
改变了软件安装的方式
2.用虚拟机和容器有什么区别?
虚拟机:在物理层面实现隔断,在VM层多了一层guest os,hypervisor会对硬件资源也进行虚拟化,利用Hypervisor,可以在主操作系统之上运行多个不同的从操作系统。
docker:在app应用层实现隔断,并且省去了虚拟机操作系统,可以直接和主操作系统进行通讯,可以通过隔断进行划分
docker:
优点
占用系统资源,存储空间和启动时间都更少,所以运行效率更高,资源利用率也高
容器化后的用户应用,依然还是宿主机上的一个普通进程,这就意味着这些因为虚拟化而带来的性能损耗都不存在
缺点
基于CGroups的隔离策略,隔离级别为进程级,隔离性差
Linux内核很多资源无法被Namespace,最典型的比如时间。若你的容器中的程序使用settimeofday(2)系统调用修改时间,整个宿主机的时间都会被随之修改,这并不符合用户预期。
不能在windos用docker运行liunx系统容器,不能在低版本linux里面运行高版本liunx容器
虚拟机:
基于hypervisor的隔离策略,隔离级别是操作系统级,隔离性强
占用系统资源,存储和启动时间都比较多,特别是,虚拟机运行在hypervisor虚拟出来的硬件系统上面
图片解释
图片解释:
container :容器--》软件的基本单元可以想成一个封闭的空间
hypervisor :虚拟机监视器,缩写VMM,是用来建立与执行虚拟机器的软件,固件或硬件,被Hypervisor用来执行一个或多个虚拟机器的电脑称为主体机器(host machine),这些虚拟机器则称为客体机器(guest machine)。hypervisor提供虚拟的作业平台来执行客体操作系统(guest operating systems),负责管理其他客体操作系统的执行阶段;这些客体操作系统,共同分享虚拟化后的硬件资源。
guest operation system :访客操作系统