什么是Docker?

如果说个人主机时代大家比拼的关键是CPU主频的高低和内存的大小,那么云计算时代,虚拟化技术无疑是整座信息技术大厦最核心的一块基石。伴随着信息技术产业的发展,虚拟化技术已经应用到各种关键场景中。从最早上世纪60年代IBM推出的大型主机虚拟化到后来X86平台上的虚拟化,虚拟化技术自身也在不断丰富和创新。

什么是Docker

Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司。Docker自开源后收到广泛的关注和讨论,目前已经多个相关项目,逐渐形成了围绕Docker的生态体系。dotCloud公司后台也改名为Docker Inc,专注于Docker相关技术和产品的开发。Docker项目目前已经加入Linux基金会,遵循Apache2.0协议,全部开源代码均 https://github.com/docker/docker 上进行维护。在最近一次Linux基金会的调查中,Docker是仅次于OpenStack的最受欢迎的云计算开源项目。

Linux容器技术

Docker引擎的基础是Linux容器技术。IBM DeveloperWorks上给出了关于容器技术的准确描述:

容器有效地将由单个操作系统管理的资源划分到孤立的组中,以便更好地在孤立的组之间平衡有冲突的资源使需求。与虚拟化相比,这样既不需要指令级模拟,也不需要及时编译。容器可以在核心CPU本地运行指令,而不需要任何专门的解释机制。此外,也避免了准虚拟化和系统调用替换中的复杂性。

从linux容器到Docker。在LXC的基础上,Docker进一步优化了容器的使用体验。Docker提供了各种容器管理工具(如分发、版本、移植等)让用户无需关注底层操作,可以简单明了地管理和使用容器。用户操作Docker容器就像操作一个轻量级的虚拟机那样简单。
可以简单地讲Docker容器理解为一种沙(Sandbox)。每个容器内运行了一个应用,不同的容器相互隔离,容器之间也可以建立通信机制。容器的创建和停止都十分快速,容器自身对资源的需求也十分有限,远远低于虚拟机。

Docker的好处

Docker项目的发起人和Docker Inc.的CTO Solomom Hykes认为,Docker在正确的地点、正确的时间顺应了正确的趋势——即高效地构建应用。现在开发者需要能方便地创建运行在云平台上的应用,也就是说应用必须能够脱离底层机器,而且同时必须是“任何时间任何地点”可获取的。因此,开发者们需要一种创建分布式应用程序的方式,这也就是Docker所能够提供的。
一个简单的应用场景的例子。假设用户试图基于最常见的LAMP(Linux+Apache+Mysql+PHP)组合来运维一个网站。按照传统的做法,首先,需要安装Apache、Mysql、和PHP以及它们各自运行所依赖的环境;之后分别对它们进行配置;经过大量的操作之后,还需要进行功能测试,看是否工作正常;如果不正常,则意味着更多的时间代价和不可控的风险。可以想象,如果再加上更多的应用,事情会变得更加难以处理。更可怕的是,一旦需要服务器迁移(例如从阿里云迁移到腾讯云),往往需要重新部署和调试。这些琐碎而无趣的“体力活”极大地降低了工作效率。

具体来说,Docker在开发和运维过程中,具有如下几个方面的优势:

  • 更快速的支付和部署。使用Docker,开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用相同环境来部署代码。Docker可以快速创建和删除容器,实现快速迭代,大量节约开发、测试、部署的时间。并且,各个步骤都有明确的配置和操作,整个过程全程可见,使团队更容易理解应用的创建和工作过程。
  • 更高效的资源利用。Docker容器的运行不需要额外的虚拟化管理程序支持,它是内核级的虚拟化,可以实现更高性能,同时对资源的额外需求很低。
  • 更轻松的迁移和扩展。Docker容器几乎可以在任意平台上运行,包括物理、虚拟机、公有云、私有云、个人电脑、服务器等。这种兼容性让用户可以在不同平台之间轻松迁移应用。
  • 更简单的更新管理。使用Dockerfile,只需要小小的配置修改,就可以替代以往大量的更新工作。并且所有修改都以增量的方式进行分发和更新,从而实现自动化并且高效地容器管理。

Docker与虚拟机比较:

  1. Docker容器很快,启动和停止都可以在秒级实现,这相比传统的虚拟机方式要快得多。
  2. Docker容器对系统资源需求很少,一台主机上可以通知运行数千个Docker容器。
  3. Docker通过类似Git的操作来方便用户获取、分发和更新应用镜像,指令简明,学习成本较低。
  4. Docker通过Dockerfile配置文件来支持灵活的自动化创建和部署机制,提高工作效率。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值