前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

Docker是什么?容器又是什么?

Docker 直译:码头工人。是在码头上搬运货物的工人
容器 英文:Container,如果再翻译回来就有2个不同的释义:集装箱/容器。

如果按照这世界上大多数正常人的理解,大家会把 Docker(码头工人)和 Container (集装箱)这一对事物放在一起,他们的关系一目了然:码头工人搬运集装箱。但是如果按照这世界上另外的一类人(程序员)的理解,我们会这样组合 ,Docker (代码集装箱搬运工)和 Container (容器)。

Docker与容器是完全2个不同的东西,Docker是用来组装/搬运/拆包容器的工具。当然也可以是人,我们原来这些苦逼的程序员谁没干过zip/copy/paste/unzip的工作呢?其实Docker就是这样一个工具,用来打包 (build)/传送(push/pull)/拆包 (run) 那些需要运行的应用。而容器就是那个包。

那么容器又是什么?

其实和集装箱很类似,就是把那些需要放在一起从A地运送到B地运行的,不能和其他程序混杂的代码封装成的一个包而已。这个概念从计算机出现的那天基本上就存在了,只是这么多年我们一直在不停的改进,但从来没有一个像docker这样的工具让容器的使用变的如此简单。在Unix/Linux的世界里,它曾将叫做 Process Container,现在被称为Control Group (cGroup);在Windows世界里,我们曾经有组件。他们的目的都一样,为了把程序从A地运送到B地,同时确保他们可以相互隔离的运行。

Docker绝对不等同于容器。一个是干活的人,一个是被搬运的物品,能一样吗?但是我仍然在各种技术文章,会议演讲上看到和听到将他们混为一谈的说法。实在觉得需要给他们正名,也是今天写这个文章的主要原因。

Docker,容器与虚拟机有啥区别?

在每一篇介绍Docker的文章里面都会看到与虚拟机比较的内容,其实我觉得这完全是拿苹果和香蕉比较,它们完全不具备可比性,至少在技术上!
大家为啥要这样比较,主要目的是让那些不了解IT但是却在管理IT的人(对,就是你的领导和你的客户)理解为啥他们好不容易,花了n多钱建立起了虚拟化平台/私有云,现在还要再花钱搞容器,搞docker。对的,这纯粹是个市场行为,与技术无关,因为他们在技术上不具备可比性。
惯常的说法,容器启动迅速(对,它只需要加载那些当前应用的进程)虚拟机启动缓慢(废话,它要加载一堆和应用无关的进程好吗)。你试试把100个应用打包到一个容器里面然后启动它,估计你一定会被98%的Windows用户打败。
给你一个hyper-v, vmware, kvm你跑不了容器,你还是需要在上面启动虚拟机,然后才能运行容器。就好像你要在家里提供100个品类的菜单,然后让你儿子每天回来点餐,给他个沙漏,然后说你随便点,我保证在10分钟内上菜。你当你是谢霆锋呢?人家谢大厨后面有10个帮厨,10个采购,10个餐厅经理,10个服务员,做的菜都是提前腌制的。你就算有三头六臂也只能说:臣妾做不到啊!
所以,容器之所以快,是把每次都要启动操作系统的操作预先完成了,这样只需要启动应用本身而已。而且,容器不会比直接启动一个应用快,甚至还会更慢一点。

然并卵,那我要这七十二变有何用?

牢骚发够了,还是说说Docker到底有啥用?Docker这个搬运工与其他搬运工不同的是,他在组装容器的时候会把应用需要的其他配件都放在一个集装箱里。这样,集装箱到货以后,直接开包就可以完成应用组装;不用再到其他地方七拼八凑的去找各种配件了。这就好比你想做红烧肉,原来的应用打包只给你打包了肉(应用),别的什么八角,香叶,冰糖,生抽老抽(应用依赖环境)都不带;现在商家提供一站式服务,一个包里不光有肉,还有七七八八所有的东西。你家里有炉子,有锅就够了(操作系统)。
另外,Docker厉害的地方在于,它不光提供了这些配料,还把物流给你搞定了。我们现在可以直接向商家(Docker Hub)下单,商家送货上门(Docker Pull),你准备好炉子和锅(操作系统),直接下锅(Docker Run),菜就上桌喽。

最后,用一句话定义Docker,那就是:优化应用运维过程的工具和生态系统。

晚上吃红烧肉!祝大家胃口好!

Docker,容器,虚拟机和红烧肉相关推荐

  1. docker容器简介及安装

    docker容器简介及安装 一.docker的前世今生 早期 过度 目前 二.什么是docker 三.docker核心概念 1.镜像 2.容器 3.仓库 四.docker容器和虚拟机的区别 五.doc ...

  2. docker:虚拟化和docker容器概念

    目录 前言 一.虚拟化简介 1.虚拟化概述 2.耦合与解耦合 2.1 耦合 2.2 解耦合 2.3 小结 3.虚拟化作用 4.虚拟化工作原理 4.1 QEMU 4.2 KVM 4.3 虚拟化类型 4. ...

  3. docker容器——虚拟化

    docker容器 前言 一.docker容器 1.docker是什么 2.容器.Docker.虚拟机 1)容器 2)虚拟机 3)Docker与虚拟机的区别 3.容器在内核中支持2种重要支持技术 1)N ...

  4. docker容器虚拟化技术_Docker,虚拟机和容器的全面介绍

    docker容器虚拟化技术 by shota jolbordi 通过Shota Jolbordi Docker has been a buzzword for tech people for the ...

  5. vmware虚拟机redhat7.2下docker容器安装hadoop

    2019独角兽企业重金招聘Python工程师标准>>> 系统准备: 系统安装及配置    [略]详见:http://www.osyunwei.com/archives/7702.ht ...

  6. docker新建Linux虚拟机,RHEL/CentOS 7下创建你的第一个Docker容器

    Docker容器人气一直在增长.他们现在正在快速采用,正在取代虚拟机,特别是在应用程序开发方面. 在本教程中,我们将讨论Docker容器的内容,并将学习在RHEL/CentOS 7上安装它的过程. D ...

  7. 什么是容器、什么是docker、docker与虚拟机的对比、docker做什么、运行场景,Docker功能和组件,Docker的C/S模式的运行,Docker概念,相关概念

    1.什么是容器 简单来说容器是一种内核技术的虚拟化体现(Cgroup和Namespace),容器可以在核心CPU上运行本地指令,有效的将单个操作系统进行分组管理和隔离. 2.什么是Docker 一种容 ...

  8. 虚拟服务器容器,docker容器和虚拟机的区别

    结构方面区别 虚拟机实现资源隔离的方式,是利用Hypervisor虚拟化 而 简单来说,Docker就是利用namespace实现的系统环境的隔离,利用cgroup实现资源限制,利用镜像实现根环境的的 ...

  9. Docker 容器 和 虚拟机 的异同

    见:https://www.docker.com/what-container 将软件打包成标准化的单元进行开发,发货和部署 容器映像是一个软件的轻量级独立可执行软件包,包含运行所需的所有内容:代码, ...

  10. 容器精华问答 | Docker和虚拟机有什么差别?

    戳蓝字"CSDN云计算"关注我们哦! 容器技术是这两年热门的话题,因为容器技术给我们带来了很多方便的地方,节约了不少成本,不管是在运维还是开发上.今天,就让我们来看看关于容器更加有 ...

最新文章

  1. mysql并发更新数据,多用户并发修改数据解决方案。
  2. DSP与CEVA芯片
  3. POJ 2104 K-th Number(区间第k大数)(平方切割,归并树,划分树)
  4. Jenkins中构建时提示:Couldn‘t find any revision to build. Verify the repository and branch config
  5. 好中的图像处理方面的期刊_约会中,注意这四个方面,帮助你把握好自己的真爱...
  6. 函数在机器底层是如何实现的_软件机器人如何实现“二次录入”自动化,促进智慧政务?...
  7. Vue Nginx反向代理配置 解决生产环境跨域
  8. 小记:《技术进步引发的灵感革命》网易游戏学院第二届公开日
  9. poj 3071 Football 概率dp
  10. Win7-64位 Cygwin编译Redis
  11. 搭建内网文件共享服务器,如何搭建共享服务器实现办公室文件共享?
  12. 突破速达系列软件科目级长的限制
  13. 使用pyserial开发的一个串口调试工具
  14. iOS依赖注入框架系列(二):设置Typhoon
  15. 布兰迪斯大学计算机科学专业,美国布兰迪斯大学计算机科学博士专业介绍
  16. Material Design专用在线配色工具
  17. 神经网络能用来干什么_知识普及:卷积神经网络模型是怎样工作的?可以做些什么?...
  18. SQL Server 2012 AlwaysOn高可用配置之六:启用AlwaysOn功能
  19. 给女友的网页小惊喜--相册万花筒
  20. 1190-1199: 习题6-2 排序

热门文章

  1. oracle错误27101,ORA-27101ORA-01034错误解决
  2. #{} 跟${}的区别
  3. python 3.8 新特性 video_1分钟了解:Python3.8 新特性:仅位置参数
  4. 【牛客 - 373A】翻硬币问题(博弈,结论,分析)
  5. 【洛谷 - P1507 】NASA的食物计划(二维费用背包,dp)
  6. 【HDU - 2102】A计划 (麻烦一点的bfs)
  7. python去除图像光照不均匀_低光照环境下图像增强相关
  8. 搜索页面html代码怎么写,页内搜索功能源代码
  9. matlab两张图片合成一张_11. 图像合成与图像融合
  10. idea 升级到2020后 无法启动_升级iOS 14尝鲜后,无法降级 iOS13.5.1?