免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10414 | 回复: 6
打印 上一主题 下一主题

9个Q&A让你快速知道Docker到底是什么 [复制链接]

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-28 16:36 |只看该作者 |倒序浏览
 不论是 Google、Amazon、Microsoft、VMware 都纷纷拥戴,加入 Docker 和 Container 所掀起的新时代云端虚拟化行列,这两项技术成为了 IT 界的新趋势。Docker 和 Container 到底是什么?以下 9 个Q&A告诉你。

  以下为原文:

  Q1:Container技术和服务器虚拟化是一样的技术吗?

  A:不是。两者虽然都属于虚拟化的技术,目标都是为了将一套应用程序所需的执行环境打包起来,建立一个孤立环境,方便在不同的硬件中移动,但两者的运作思维截然不同。简单来说,常见的传统虚拟化技术如 vSphere 或 Hyper-V 是以操作系统为中心,而 Container 技术则是一种以应用程序为中心的虚拟化技术。

  传统虚拟化技术从操作系统层下手,目标是建立一个可以用来执行整套操作系统的沙盒独立执行环境,习惯以虚拟机(Virtual Machine)来称呼。而 Container 技术则是直接将一个应用程序所需的相关程序代码、函式库、环境配置文件都打包起来建立沙盒执行环境,为了和传统虚拟化技术产生的虚拟机区分,Container 技术产生的环境就称为 Container。

  Q2:一般常见的虚拟机和Container有何不同?

  A:最明显的差别是,虚拟机需要安装操作系统(安装 Guest OS)才能执行应用程序,而 Container 内不需要安装操作系统就能执行应用程序。Container 技术不是在 OS 外来建立虚拟环境,而是在 OS 内的核心系统层来打造虚拟执行环境,透过共享 Host OS 的作法,取代一个一个 Guest OS 的功用。Container 也因此被称为是 OS 层的虚拟化技术。

  Q3:为何Container是轻量级虚拟化技术?

  A:因为 Container 技术采取共享 Host OS 的作法,而不需在每一个 Container 内执行 Guest OS,因此建立 Container 不需要等待操作系统开机时间,不用 1 分钟或几秒钟就可以启用,远比需要数分钟甚至数十分钟才能开启的传统虚拟机来的快。

  Q4:Container技术是全新的技术吗?

  A:不是,早在 1982 年,Unix 系统内建的 chroot 机制也是一种 Container 技术。其他如 1998 年的 FreeBSD jails、2005 年出现的 Solaris Zones 和 OpenVZ,或像是 Windows 系统 2004 年就有的 Sandboxie 机制都属于在操作系统内建立孤立虚拟执行环境的作法,都可称为是 Container 的技术。

  直到 2013 年,dotCloud 这家 PaaS 服务公司开源释出了一套将 Container 标准化的平台 Docker,大受欢迎,所以,dotCloud 决定以 Docker 为名成立新公司力推。

  Q5:Docker如何实现Container标准化?

  A:Docker 采用了 aufs 文件系统来设计一个可以层层堆栈的 Container 映象文件,将 Container 内的所有程序(包括应用程序、相关函式库、配置文件),都打包进 Docker 映象档,并且提供了一个 Dockerfile 配置文件来记录建立 Container 过程的每一个步骤包括参数。只要在任何支持 Docker 平台的环境中,就可以从这个映象档来建立出一个一模一样的 Container 来执行同一个应用程序。如此一来,应用程序等于是可以透过 Docker 映象檔,或甚至只需要 Dockerfile,就能将程序执行环境带着走,移动到任何支持 Docker 的环境中。Docker 公司也释出 API,可以用来控制所有的 Container 相关指令,任何人只要使用同一套 Docker,就等于有了同一套管理和建立 Container 的方法,也就等同于将 Container 运用标准化了。

  Q6:一个Container映象档内可以安装多少应用程序?

  A:一个 Container 的映象档内可以安装多支程序,例如同时安装 Ubuntu、Apache、MySQL、Node.js、Ruby 等。不过,Docker 官方建议,一只程序安装在一个 Container 内,再把这些 Container 迭起来提供一个完整的服务。

  Docker 称这是一种 Microservices(微服务)的新软件架构,将组成一个应用系统的每一个 Stack,拆解成许多小型服务,例如 Apache 服务、MySQL 服务、Node.js 服务、Ruby 服务,每一个服务都是包在 Container 里的一只程序,例如 MySQL 服务就是部署在 Container 内的 MySQL。

  这么做的好处是可以建立一个松散耦合的弹性应用程序架构,也能轻易地抽换其中一个 Container,例如要升级 MySQL,只需要重载新版 MySQL 的 Container 映象文件,就可以完成数据库升级,不用将整套应用系统停机。

  Q7:Container内不是不需要OS,为何需要OS的基础映象档?

  A:OS 基础映象档的用途是让 Container 拥有这 OS 的文件系统,例如使用 ubuntu 基础映象档就可以让 Container 建立 ubuntu 的根目录架构,而不是用来执行一个 OS 执行实例。

  Q8:Docker对Devops有何帮助?

  A:因为 Docker 透过 Dockerfile 来记录建立 Container 映象文件的每一个步骤,可以将建立应用程序执行环境的过程和配置参数,完整地记录下来。开发人员和维运人员之间可以利用 Dockerfile 来沟通对执行环境的讨论。甚至结合版本控制服务如 GitHub,可以让 Dockerfile 具备版本控制功能,能将基础架构程序化(Infrastructure as code)来管理。

  Q9:可以在Windows Server环境中执行Docker吗?

  A:还不行。目前 Docker 只能在 Linux 平台上执行,但是微软 10 月中刚宣布要在下一波 Windows Server 改版时内建 Docker 引擎,未来同一份 Docker 映象档能否跨 Linux 和 Windows OS,还需待微软揭露更多细节才能得知。

评分

参与人数 1信誉积分 +10 收起 理由
流氓无产者 + 10 赞一个!

查看全部评分

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2014-03-27 15:44:382015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2014-10-28 17:22 |只看该作者
docker 让linux更强大了

评分

参与人数 1可用积分 +10 收起 理由
ulovko + 10 欢迎常来IT资讯 ^_^

查看全部评分

论坛徽章:
26
CU十二周年纪念徽章
日期:2013-10-24 15:41:34技术图书徽章
日期:2014-07-11 16:27:52辰龙
日期:2014-09-04 13:40:43白羊座
日期:2014-09-09 12:51:55双子座
日期:2014-09-26 11:00:042014年中国系统架构师大会
日期:2014-10-14 15:59:00子鼠
日期:2014-10-23 16:48:23巨蟹座
日期:2014-10-27 08:21:10申猴
日期:2014-12-08 10:16:282015年辞旧岁徽章
日期:2015-03-03 16:54:15NBA常规赛纪念章
日期:2015-05-04 22:32:03IT运维版块每日发帖之星
日期:2016-01-29 06:20:00
3 [报告]
发表于 2014-10-29 08:50 |只看该作者
可不可以这样理解:

如果win下的程序都可以在linux中docker下运行,而不要win os的支持

这样win就彻底完蛋了?

所以microsoft肯定只做某部分的软件与docker兼容如iis、mssql或office。

而其它建立再win os平台上的软件是不可能的

求职 : Linux运维
论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:15:0815-16赛季CBA联赛之山东
日期:2016-10-31 10:40:10综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00IT运维版块每日发帖之星
日期:2016-02-08 06:20:00数据库技术版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-10 06:20:00黄金圣斗士
日期:2015-11-24 10:45:10IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:012015年亚洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
4 [报告]
发表于 2014-10-29 10:45 |只看该作者
看来我们其实是一直在沿用过去的技术,只不过是一种更好的进化罢了!!!看来自由开源确实能让软件系统本身产生进化的效果!!!

求职 : Linux运维
论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:15:0815-16赛季CBA联赛之山东
日期:2016-10-31 10:40:10综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00IT运维版块每日发帖之星
日期:2016-02-08 06:20:00数据库技术版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-10 06:20:00黄金圣斗士
日期:2015-11-24 10:45:10IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:012015年亚洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
5 [报告]
发表于 2014-10-29 10:45 |只看该作者
看来我们其实是一直在沿用过去的技术,只不过是一种更好的进化罢了!!!看来自由开源确实能让软件系统本身产生进化的效果!!!

求职 : Linux运维
论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:15:0815-16赛季CBA联赛之山东
日期:2016-10-31 10:40:10综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00IT运维版块每日发帖之星
日期:2016-02-08 06:20:00数据库技术版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-10 06:20:00黄金圣斗士
日期:2015-11-24 10:45:10IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:012015年亚洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
6 [报告]
发表于 2014-10-29 15:37 |只看该作者
操作系统没有实现的微服务在这个层面实现了!!!

论坛徽章:
0
7 [报告]
发表于 2014-12-14 22:43 |只看该作者
回复 3# cryboy2001
不会完蛋的,即使真在LXC可以运行Windows应用,那也是要付费的。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP