为什么Docker会受欢迎?看完这些才恍然大悟

Docker不是唯一的容器平台,也不是第一个推出的。其他框架,如OpenVZ和LXC,从20世纪20年代中期诞生。而其他类似容器的技术,如FreeBSD更进一步。而Docker在2013年发布,与目前的大多数主流技术相比,是一个非常年轻的技术。但是,Docker却逐渐成为当前最受欢迎的云开源项目。

今天的Docker公司脱胎于一个平台即服务的初创公司dotCloud。dotCloud团队发现,在许多应用程序和客户之间管理依赖关系和二进制文件需要做大量的工作。因此,他们将Linux cgroups和namespaces的一些功能组合成一个简单易用的包,这样应用程序就可以在任何基础设施上持续运行。这个包就是Docker镜像,它提供将应用程序和库封装在单个包中(Docker镜像),因此应用程序可以跨多环境一致部署; 提供类似于git的语义,例如“dockerpush”,“docker commit”,这样可以让应用程序开发人员可以轻松地采用新技术,并将其融入到现有的workflow中。

除此之外,将Docker镜像定义为不可变层,启用不可变的基础设施。提交的更改被存储为一个单独的只读层,这让镜像复用和跟踪更改变得更加容易。另外,层还可以通过传输更新而不是整个镜像来节省磁盘空间和网络流量; 通过使用可以临时存储运行时更改的可写层来实例化不可变映像,从而方便快速部署和扩展应用程序的多个实例。

所以相比之下,Docker容器是创建密集环境的理想选择,在这种环境中,主机服务器的资源被充分利用,但不会被过度使用。这是因为Docker容器不需要通过在容器内创建客户机操作系统来复制主机操作系统的功能。 此外,Docker不会强制您为容器分配给定数量的资源(虽然您可以为单个容器设置资源配额)。这意味着Docker容器能够更高效和动态地使用来自主机的资源。当放置在一个容器或服务上的需求减少时,它所消耗的资源将被释放以供其他服务使用。

因此,这让Docker拥有了让人信服的优点:

1

简化配置

Docker倡导的主要使用场合是简化配置。虚拟机的一大优点在于,能够在你的基础设施上运行任何平台,虚拟机有自己的配置。Docker提供了同样这项功能,却没有虚拟机的开销。它让你可以将环境和配置放入到代码中加以部署。同样的Docker配置还可以用在各种环境中。这将基础设施需求与应用程序环境分离开来。

2

代码流水线管理

从开发环境直到生产环境,Docker为应用程序提供了始终一致的环境,因而简化了代码开发和部署流水线。 Docker映像不可改变的特性以及易于构建,可以帮助你实现从开发环境直到生产环境,应用程序的运行环境都不发生变化。

3

服务器合并

就像使用虚拟机来合并多个应用程序一样,Docker的应用程序隔离功能可以合并多台服务器,以节省成本。然而,由于没有多个操作系统的内存占用空间,又能够在诸实例之间共享闲置未用的内存,Docker提供的服务器合并效果比借助虚拟机所能实现的好得多。

4

调试功能

Docker提供了未必是容器所特有的许多工具,但是它们与容器概念很搭。它们还提供了极其有用的功能。这包括:能够检查容器和容器版本,另外还能让两个容器有所不同。这在修复应用程序时大有用处。

5

快速部署

在虚拟机出现之前,配置新的硬件资源需要数天。虚拟化将这个时间缩短到了几分钟。Docker更是缩短到了短短几秒钟,因为它只需要为这个过程创建容器,并不启动操作系统。正是这项支持性技术,促使谷歌和Facebook使用容器。

原文发布于微信公众号 - 云计算D1net(D1Net02)

原文发表时间:2017-08-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

KVM基于内核的虚拟机概念理解与客户机浅析

作为一个KVM的学习者,如果你想要自己完善一个KVM样品级的解决方案,仅仅学会图形化界面使用和简单的配置(详情见上一篇文章)是远远不够的。在上文中感谢@laow...

42140
来自专栏北京马哥教育

Linux 容器 vs 虚拟机 —— 谁更胜一筹

自从Linux上的容器变得流行以来,了解Linux容器和虚拟机之间的区别变得更加棘手。本文将向您提供详细信息,以了解Linux容器和虚拟机之间的差异。 Linu...

30940
来自专栏编程坑太多

跟我一起学docker(一)--认识

22140
来自专栏我是攻城师

为什么要用Docker?

37160
来自专栏SDNLAB

Kubernetes正式支持Containerd 1.1版

19840
来自专栏磨磨谈

基于发行版本内核打造自己的内核

Linux当中最核心的部分就是内核,这个也是最基础,最可能被忽视的一部分,随便找一个刚入职的运维,学习个两三天,网上找些资料也能能自己安装编译内核了,很多运维的...

11420
来自专栏云计算D1net

想要使用容器技术 这5类遗留工具就应该被淘汰

充分利用容器并不只是安装Dockers和激活容器应用程序那么简单。你需要改进的同样还有监控方法、安全性能等。 这么做的理由是,容器并不只是对你过去工作中使用到的...

35680
来自专栏云计算

Docker带来的五大益处:CI,版本控制,可移植性,隔离性和安全性

Docker的跨环境一致性在开发界已经获得了广泛认可。通常情况下,开发阶段和正式发布的环境之间总会有细微的差异。除非你拥有自己的私有仓库,并严格检查。这些差异可...

38190
来自专栏IT派

最全的30+个开源免费的Docker工具

容器生态系统的发展和扩展速度越来越快速,并且已经有了许多的Docker工具和服务,想要知道所有的有用选择,你会发现基本很难完成。

27930
来自专栏Albert陈凯

5分钟弄懂Docker

尽管之前久闻Docker的大名了,但是天资愚钝,对其到底是个啥东西一直摸不清,最近花了一段时间整理了一下,算是整理出一点头绪来。 官网的介绍是这样的: Do...

34950

扫码关注云+社区

领取腾讯云代金券