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

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

不过就算Docker现在怎样的如日中天,这并不意味着它一定适合你。就如同在这篇 Tech Pro Research 的分析文章中提到的一样,“对于是否要采用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年技术支持,而着可能是很多企业所需要的。

注:作者的原文写于2015年,现在Docker的版本已经是1.12。

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

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

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

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

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

本文翻译自:http://www.techrepublic.com/blog/10-things/10-things-you-should-know-about-docker/?from=singlemessage&isappinstalled=0 


相关阅读:

docker4dotnet #1 前世今生 & 世界你好

docker4dotnet #2 容器化主机

DockerCon 2016 – 微软带来了什么?

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研发运维一体化的信息

内容转载自公众号

DevOps
了解更多

docker – 你应该知道的10件事相关推荐

  1. 关于Docker你应该知道的10件事

    如果你在企业IT工作,那你会听说过 Docker.即使在是像 Puppet.Hadoop 和 MongoDB 这样的热门技术中,Docker 也会脱颖而出.但正是因为 Docker 正处于炒作期,因此 ...

  2. 大规模运行MongoDB应该知道的10件事

    MongoDB的首席解决方案架构师Asya Kamsky 最近发表了一篇文章,概括了大规模运行MongoDB需要知道的10件事. MongoDB也需要DevOps.MongoDB是一个数据库.和任何其 ...

  3. 女孩做妻子前应知道的10件事

    女孩做妻子前应知道的10件事 一段时间的甜蜜恋爱期过后,你和心爱的他终于要踏上期盼已久的红地毯.你发誓一定要做个最幸福的小女人,要成一个永远让丈夫着迷的好妻子.从一个女孩的身份转变为一个妻子的身份前, ...

  4. 学习Go之前你应该知道的10件事 | Gopher Daily (2021.04.21) ʕ◔ϖ◔ʔ

    每日一谚:Don't use an interface if it's not clear how the interface makes the code better. Go技术生态 编写好的单元 ...

  5. 量子计算和人工智能:应该知道的10件事

    来源:中国机器人网 近年来,新兴技术变得突出.其中,量子计算具有改变我们世界的独特潜力.量子计算已经显示出有希望的证据,以令人难以置信的方式加速启发式计算.因此,在复杂的解决方案中应用量子计算来解决药 ...

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

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

  7. 在IT界取得成功应该知道的10件事(ZT)

    1. 厚脸皮 - Thick skin 让我们面对现实吧.从各个方面来说,IT业从业人员很难受到欢迎.昨天有人坚持让你完成一项工作,如果你不好好干的话,你将会马上丢掉工作,因为客户的数据文件无法修复. ...

  8. 每个程序员都应该知道的10件事!

    如果你已经编程了一段时间,并且想学习编程,那么你可能在想什么才是一个好的程序员?计算机科学与技术专业毕业生能做些什么,来为软件开发职业生涯做准备? 在本文中,我将分享10件我认为每个程序员都应该知道的 ...

  9. 关于微软Silverlight,你应该知道的10件事

    对于任何成长中的企业来说,设计一个合适的网站是一件非常重要的事情,但是如何让你的网站具有富互联网应用程序(Rich Internet Applications,RIA)的体验却不是那么简单.为了在这方 ...

最新文章

  1. Spring IoC容器:BeanFactory和ApplicationContext谁才是Spring IoC容器
  2. 利用Chrome开发者工具memory comparison分析一个时间段内的JavaScript代码内存占用率
  3. LeetCode之Count and Say
  4. dynamodb java_使用Java更新DynamoDB项
  5. java符号引用 直接引用_Java -- JVM的符号引用和直接引用
  6. java自定义注解学习笔记
  7. HTML(XHTML)基础知识(三)——【image】
  8. c语言txt操作,C语言文件操作总结
  9. 关于java中数据类型叙述正确的是( )_关于Java中数据类型叙述正确的是:
  10. 自制 Chrome Custom.css 设置网页字体为微软雅黑扩展
  11. Spring Data 起步
  12. CentOS7上squid的部署及两种模式(4.1版本)
  13. paip.提升用户体验-----c++ 宏的使用...替换从在的地张儿复制过来的代码.
  14. 程序员的 10 款代码表白特效,一个比一个浪漫
  15. 各个省市mysql表附带行政id(一)
  16. 二分类模型评价指标-总结
  17. centos6.8安装anjuta
  18. LAMP一键安装包是什么?
  19. Leetcode520Detect Capital检测大写字母
  20. 豆瓣top250html源码,用23行代码爬取豆瓣音乐top250

热门文章

  1. webform 页面传值的方法总结
  2. 深入浅出Docker(三):Docker开源之路
  3. C++ 函数映射使用讲解
  4. 关于VC6.0 MSDEV.EXE-应用程序错误0x5003eaed指令引用的0x000...
  5. ASP.NET : Kerberos网络认证过程
  6. 芒果TV会员,月卡最低9.9元,年卡最低128元!
  7. MariaDB Spider 数据库分库分表实践 分库分表
  8. 记一次 Oracle无法连接 问题分析
  9. 2021 年 9 月 TIOBE 指数 C# 同比增长突破 1.2%
  10. 多线程环境下,程序真是危机四伏