容器并不是一个全新的技术,但这并不妨碍Docker如风暴一样席卷整个世界。

如果你在IT圈里,你一定听说过Docker。就算与其他热门技术,如:Puppet/Chef,Hadoop或者MongoDB放在一起,Docker仍然让你耳目一新。

不过就算Docker现在怎样的如日中天,这并不意味着它一定适合你。就如同我在这篇 Tech Pro Rearch 的分析文章中读到的一样,“对于是否要采用Docker作为企业的未来技术方向,你需要的是谨慎!”

在你决定尝试Docker之前,先了解以下这10点:

1. Docker是一种软件打包和发布技术

现代软件系统一般都由各种可运行的二进制文件,库文件,配置文件和其他依赖组成。在一台电脑上完成装配已经是非常困难和复杂的事情,要“发布”这些软件的时候,事情会变的更加复杂。一旦你开始发布过程,你就需要找到一种能够让这些组件正确打包的方式,还要考虑如何把打包好的软件放到它们应该去的地方。Docker就是这样一种帮助你进行软件打包的方式,无论你的软件有多少依赖,发布到哪里,其他开发人员的机器或者是生产环境;Docker都给你提供一种简单易用而且标准化的方式。

2. Docker并不是一种全新的技术

Docker的出现不过几年的时间,但是容器技术已经存在几十年了。容器技术在主机时代已经被证明是非常有用的技术,这让Docker的成功看上去更像是时势造英雄的结果,包括Linux的流行,虚拟化的大规模应用和云计算的兴起都给Docker技术的火热创造了必要条件。

3. 基本上大家都支持Docker

无论你选择哪家技术供应商,基本上他们100%的支持Docker。从亚马逊AWS,到RedHat到Google,每一家能很好的支持Docker。

4. Docker 不仅仅可以跑在Linux上面

虽然Docker起源于Linux平台,但是微软正在大力拥抱Docker技术。Docker依赖于很多在Windows平台上并不存在的技术,比如Linux容器技术(LXC),cgroup和命名空间(namespaces)技术。所以微软正在开足马力在Windows Server上提供对应的能力以便与Docker进行集成。实际上,微软在Windows中也使用自己的容器化技术很多年了,现在所要做的就是让这些技术能够更好的兼容Docker,因为Docker已经成为事实上的标准。

5. Docker可以让你像管理虚拟机一样管理CPU,内存,网络和磁盘资源

Docker是围绕Linux的cgroup来实现的,cgroup的作用就是控制容器可以使用的各种计算机资源,包括cpu,内存,网络和磁盘。在这一点上Docker提供了与虚拟机同样的能力,让你可以把计算机的一部分资源分配给一部分用户或者进程,这样他们就不会占用所有的计算资源;同时,Docker又不会像VMware所提供的虚拟化一样带来那么巨大的资源浪费(虚拟机必须运行整个操作系统,而Docker只是对应用进行虚拟化)。

6. 启动Docker容器比启动虚拟机快的多的多(毫秒级vs分钟级)

在一台服务器上运行多个作业的传统方式是启动多个虚拟机,然后在不同的虚拟机上运行不同的作业。因为虚拟机必须启动整个操作系统,它就会很慢,一般都需要数分钟的时间。同时这些虚拟机还非常消耗资源,因为操作系统本身就要吃掉很多资源。容器可以解决同样的问题,但是启动容器和启动一个进程是同一级别的,所以Docker让你可以节省掉操作系统所带来的资源浪费,以进程级别的消耗来提供与虚拟机类似的隔离能力。

7. Docker还不会完全替代虚拟机,至少短期内不会

相对于虚拟机,Docker并不是一种非黑即白的替代方案,这主要是因为Docker依赖于底层标准化的操作系统,而虚拟机是当前解决这个问题最好的方式。但是,这也意味着Docker是依赖于某种操作系统的,所以你不可能在一台容器化主机上同时运行Windows和Linux应用,你需要至少2台分别运行Windows和Linux的容器化主机才行。同时,就Docker当前的技术发展情况来看,容器的隔离能力还做得不到和虚拟机同样的级别;因此对于有些多租户的场景来说,Docker可能并不那么适用。

8. Docker的发展速度实在是太快了

在你登上Docker这趟列车之前,你要知道你上的是新干线而不是蒸汽机车,每小时400公里的速度可不是闹着玩的。看看这个仅仅存在了1年半的技术,它的API已经发布了15个版本,你就知道它的变化有多快了。就算Docker正在快速的成熟,并且已经逐渐具备了企业级软件的能力,但是它并不提供10年技术支持,而着可能是很多企业所需要的。

注:现在Docker的版本已经是1.12。

9. Docker并不是没有竞争对手

虽然Docker很流行,它并不缺少竞争对手。比如CoreOs最近也发布了一个名为Rocket的产品,Docker最好的Linux伴侣Ubuntu也在发展它自己的LXD容器技术。这些竞争对手多少都在撕扯Docker封闭的生态系统。在Docker的世界里,所有的东西都要围绕Docker registry来运行,你要么适用Docker所提供的公共服务,要不在自己的数据中心中部署一套,这并不是免费的。

10. Docker有风险,入市需谨慎

和任何一种新兴的技术一样,你需要循序渐进。从技术的角度来说,你需要了解很多该做的和不该做的。但最重要的一点,这不仅仅是几行代码那么简单,你进入的是一个生态,而这个社区可能并不适合你。你应该先多参加一些社区活动,如:Meetup,邮件列表,订阅些微信公众号啥的;慢慢对它进行了解,然后再决定是否应该投入更多的时间。

无论Docker怎样,容器技术都会继续盛行下去,因为容器让现代软件技术和计算机技术变的更加简单易用。而在容器这个领域里,Docker是毋庸置疑的领导者,你没有办法回避这个事实。但是,到底以怎样的方式接受,接受多少,多快,你一定要根据自己企业的现状来考虑。

 


相关阅读:

docker4dotnet #1 前世今生 & 世界你好
http://devopshub.cn/2016/07/08/docker4dotnet-1-overview-and-helloworld/

docker4dotnet #2 容器化主机
http://devopshub.cn/2016/07/13/docker4dotnet-2-docker-machine-create-dockerized-hosts/

DockerCon 2016 – 微软带来了什么?
http://devopshub.cn/2016/06/22/dockercon-2016-with-microsoft/

Real-World Docker: 10 Things We’ve Learned
http://www.slideshare.net/rightscale/webinar-real-world-docker-2014-1209-v3-1

(本文在SlideShare上可能无法正常访问,可以通过在devopshub订阅号中输入d4dtools获取)

Why Docker… and why now?
http://www.techrepublic.com/article/why-docker-and-why-now/

Docker and Microsoft partner to bring container applications across platforms
http://news.microsoft.com/2014/10/15/dockerpr/#sm.000uatmy5115te5avb62jyeq9a5fg


请关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的信息

docker – 你应该知道的10件事的更多相关文章

  1. 【转载】在IT界取得成功应该知道的10件事

     在IT界取得成功应该知道的10件事 2011-08-11 13:31:30 分类: 项目管理 导读:前面大多数文章都是Jack Wallen写的,这是他的新作,看来要成为NB程序员还要不停的自我总结 ...

  2. (0)开始 Raspberry Pi 项目前需要知道的 10 件事

    https://www.digikey.cn/zh/articles/techzone/2017/feb/10-things-to-know-before-starting-a-raspberry-p ...

  3. 使用Office 365前,企业必须要知道的10件事

    目前的市场上充斥着很多关于微软Office 365的炒作,相信厂商.客户或者企业的都有自己不同的考虑.Office 365是微软云版本的Office,用户可以通过互联网创建一个帐户,付款.下载应用安装 ...

  4. 在IT界取得成功应该知道的10件事

    导读:人人似乎都同意IT行业是一个艰难领域,但怎样才能克服逆境,成为一名成功的IT专业人士呢?下文这些特质应该是关键.此文作者Jack Wallen,他在前段时间写过不少文章讨论IT职场,比如退出IT ...

  5. 关于NoSQL数据库你应该知道的10件事

    关系数据库模型已经流行了几十年了,但是一种新类型的数据库——被称为NoSQL,正在引起企业的注意.下面是关于它的优势和劣势的一个概述.二十多年以来,对数据库管理来说,关系数据库(RDBMS)模型一直是 ...

  6. digitalocean教程:你应该知道的10件事

    DigitalOcean VPS性价比高,全球拥有多处机房,无须备案,非常适合守规矩的中国用户使用.digitalocean优惠码.digitalocean速度.digitalocean评测是网友关心 ...

  7. 关于C#你应该知道的2000件事

    原文 关于C#你应该知道的2000件事 下面列出了迄今为止你应该了解的关于C#博客的2000件事的所有帖子. 帖子总数= 1,219 大会 #11 -检查IL使用程序Ildasm.exe d #179 ...

  8. 关于WPF你应该知道的2000件事

    原文 关于WPF你应该知道的2000件事 以下列出了迄今为止为WPF博客所知的2,000件事所创建的所有帖子. 帖子总数= 1,201 动画 #7 - 基于属性的动画 #686 - 使用动画制作图像脉 ...

  9. 《Offer一箩筐》求职之前你必须知道的 4 件事!!

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」. 如果觉得 「不错」 的朋友,欢迎 「关注 + 留言 + 分享」,文末有完整的获取链接,您的支持是我前进的最大的动力! Hi~ 这里是 ...

随机推荐

  1. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  2. CENTOS 6.5 平台离线编译安装 Mysql5.6.22

    一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...

  3. Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误——SHH框架

    SHH框架工程,Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误 1.查看配置文件web.xml中是否配置.or ...

  4. H3 BPM社区:流程开发者的学习交流平台

    企业上市有上市流程,融资扩充有融资流程,项目招投标有招投标流程,部门领导选拔有晋升流程,员工请假休假有请假流程,早起上班梳洗有符合自己习惯的流程--生活处处是流程,流程无处不在.但从信息化建设来说,企 ...

  5. Atitit.研发团队与公司绩效管理的原理概论的attilax总结

    Atitit.研发团队与公司绩效管理的原理概论的attilax总结 1. 四个理念 1 1.1. 绩效管理的三个目的.四个环节.五个关键2 1.2. 绩效目标smart2 2. 考核对象2 3. 绩效 ...

  6. oracle常用函数及示例

    学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...

  7. SQLServer2005创建定时作业任务

    SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server ...

  8. PADS Layout 颜色设置

    一.板框.装配线.标注线配置: 二.个人爱好,我一般把Top pads设置成为浅绿色,Top Trace/vias/2D Line/Text/Cooper设置成为深绿色,Error设置成为黄色,而Bo ...

  9. 12个小技巧,让你高效使用Eclipse

    集成开发环境(IDE)让应用开发更加容易.它们强调语法,让你知道是否你存在编译错误,在众多的其他事情中允许你单步调试代码.像所有的IDE一 样,Eclipse也有快捷键和小工具,这些会让您感觉轻松许多 ...

  10. Spring MVC重定向和转发以及异常处理

    SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于 ...