博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是Docker?为什么要使用Docker【转】
阅读量:7254 次
发布时间:2019-06-29

本文共 1329 字,大约阅读时间需要 4 分钟。

hot3.png

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在GitHub 上进行维护。

Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker 的基础是 Linux 容器(LXC)等技术。

在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

为什么要使用 Docker?

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。

首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。

e55a463d5bab58a04d487b4c1d83a957a38.jpg

容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

具体说来,Docker 在如下几个方面具有较大的优势。

更快速的交付和部署

对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

更高效的虚拟化

Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

更轻松的迁移和扩展

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

更简单的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

对比传统虚拟机总结

                           
                            

特性 容器  虚拟机
启动 秒级 分钟级
硬盘使用 一般为 MB 一般为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 一般几十个

        
        
        

转载于:https://my.oschina.net/u/3267498/blog/2994505

你可能感兴趣的文章
QQ拼音在中文输入下默认英文标点
查看>>
hadoop MapReduce - 从作业、任务(task)、管理员角度调优
查看>>
JVM 类加载过程
查看>>
PL/SQL连接Oracle客户端步骤
查看>>
关于在 mac上配置pytesseract的相关问题
查看>>
解决eclipse复制粘贴js代码卡死的问题
查看>>
【BZOJ】1513: [POI2006]Tet-Tetris 3D
查看>>
【BZOJ】2172: Mario填格子
查看>>
关于格式化字符串日期
查看>>
Http Cookie Manager、session
查看>>
学习汇编语言
查看>>
rabbitmq例子
查看>>
[转]js中confirm实现执行操作前弹出确认框的方法
查看>>
域滤波:方框、高斯、中值、双边滤波
查看>>
github创建tag
查看>>
token生成过程
查看>>
《Head First 设计模式》学习笔记——状态模式
查看>>
SQL Server代理(2/12):作业步骤和子系统
查看>>
[实战]MVC5+EF6+MySql企业网盘实战(28)——其他列表
查看>>
[C#]List的Sort()、Find()、FindAll()、Exist()的使用方法举例
查看>>