当前位置:首页 > 虚拟化 > 正文

docker需要虚拟化技术吗(docker是半虚拟化技术)


一、docker是干什么的(Docker的前世今生介绍)要谈什么是Docker,我们首先要谈一下虚拟化。虚拟化分为硬件级虚拟化和操作系统级虚拟化。很多同学用过的虚拟机就是硬件级的虚拟化。指运行在硬件上的虚拟化技术。
过年了,还不知道Docker怎么样?用5分钟讲述他的前世今生!
大约9年前,即2010年,上的年轻人SolomonHykes在旧金山创立了一家专注于PaaS的公司,名为dotCloud。
PS:PaaS是指为软件开发提供相关支撑功能。PaaS通常会提供构建服务SDK,在云端实现自动化部署和测试,包括语言环境、运行环境、存储等基础服务,其中包括很多框架和语言(如PHP、MySQL、)。、MongoDB等)。
如果dotCloud将用Go开发的基于LXC(LinuxContainer)的PaaS平台发挥到了极致,那么dotCloud理论上已经消除了环境限制。
在当时竞争激烈的PaaS环境中,具有敏锐洞察力的Solomon发现自己基于LXC的技术有一条快速高效协同开发和部署的捷径。为了生存,他别无选择,只能决定将核心引擎(Apache2.0协议)开源,这是非常出乎意料的,这项技术在PaaS巨头(Amazon、Google、IBM、MS、RedHat、VMware)之中询问并认可。
Solomon顺应潮流,于2013年将公司更名为Docker,并于2014年发布docCloud的PaaS服务平台,引发了基于云计算平台的发布产品革命。
Docker到底是什么?为什么它如此受欢迎?
要谈什么是Docker,首先要谈一下虚拟化。虚拟化分为硬件级虚拟化和操作系统级虚拟化。
很多同学用过的虚拟机是硬件级的虚拟化。它是指运行在硬件上的虚拟化技术,其管理软件就是我们通常所说的Hypervisor或VirtualMachineMonitor。
需要模拟的是一个完整的操作系统,我们通常称之为虚拟化技术,基于Hyper-V、Xen、VirtualBox、亚马逊AWS和阿里云。
Docker是最流行的操作系统级虚拟化实现,也称为容器化技术。操作系统级虚拟化运行在操作系统上。它模拟操作系统上运行的几个不同的进程,并将它们封装在一个密封的容器中。
但是我还是不明白。您能简单解释一下吗?
尝试一下。
1.如果我们想创建一个不带虚拟化的服务器,我们先列出需要做的事情:
购买硬件主机
安装操作系统
配置环境
部署应用程序
缺点是一台主机一次只能部署一个应用程序。如果我们需要迁移,则需要重复上述步骤。在此基础上,虚拟化技术应运而生。
2.虚拟化技术向运行在物理服务器和操作系统之间的本地操作系统添加了虚拟机管理程序层。它可以虚拟化CPU、磁盘和内存资源等硬件资源。
然后我们就可以基于虚拟化的资源来安装操作系统,称为虚拟机。
但是一项技术必然有它的优点和缺点。
虚拟化的优点是。
资源池-物理机的资源分配给不同的虚拟机
易于扩展-只需添加物理机或虚拟机即可,虚拟机可复制虚拟化的缺点是。
我们每次创建虚拟机的时候,都会创建一个操作系统,而一个操作系统至少要消耗几个G的资源。虚拟机越多,浪费的资源就越多。
3.容器技术解决了这个问题,但这并不是它诞生的主要原因。主要原因是为了解决开发与运维人员环境不一致导致开发效率大幅降低的问题。
容器可以帮助我们打包整个开发环境和应用,打包后的容器可以运行在任何环境中。
容器现在可以解释为“软件及其依赖环境的标准化包装”。
可以实现容器。
应用程序之间的隔离
通用的OSKernel(解决资源浪费问题)
可以运行在很多流行的操作系统上
最后我们看一下最典型的Docker应用场景:当你开发软件时,你使用的是Ubuntu,但是在运维管理中,当你的软件从开发环境转移到生产环境时会出现一些问题例如关于Centos:有一个特殊版本的数据库。仅在Ubuntu上可用,但Centos不支持。在转移过程中,运维必须想办法解决此类问题。
如果这时候你有Docker,你可以直接封装开发环境推送给运维,运维可以直接部署你提供的Docker。而且部署速度非常快。