【docker】简介

来源:互联网 发布:中国联通软件开发待遇 编辑:程序博客网 时间:2024/06/07 07:33

最近在用docker,感觉真的爽,决定先研究下概念。

第一次接触是实习的时候,当时因为是mac的os,而docker只能运行于linux系统,所以mac有两种方案,一个是基于toolbox的,也就是装一个linux的虚拟机在mac上,然后docker运行在这个虚拟机上。另一个是基于docker for mac工具的。第一种性能更高,但是操作比较麻烦。

下面探究了下概念级别的东西。

1.docker是干嘛的:

比较官方的说法是,docker是一种轻量级的操作系统虚拟化解决方案,能够为应用程序提供可移植的容器。也就是说,它是一种虚拟化方案,而且是轻量级的,我们可以很方便地使用docker为自己的应用打包一个环境,然后可以运行在任意的linux平台,包括物理机,虚拟机和云平台。

2.docker与虚拟机区别:

第一次接触dcoker,有人就说可以把它理解为一个虚拟机,确实,如果想要在极短时间内定位docker的作用,可能说它是虚拟机也比较恰当,但是如果要仔细定位,它肯定与虚拟机有区别。

区别就是第一点里的轻量级,相比较虚拟机技术,这是docker的特性。


这是我找到的一张比较好的图。docker的虚拟化思想是公用宿主机的os内核,首先每一个虚拟化环境是隔离的,其环境主要包括了linux操作系统的内核+应用程序依赖+应用程序。不同的虚拟环境通过docker 引擎共享了宿主的os内核,所以docker的每一个虚拟化环境十分轻量。我们可以通过dockerFile来指定依赖。

相比较与虚拟机技术,每一个虚拟环境包括了一个实际的操作系统+依赖+应用。每一个环境都需要一个操作系统,所以虚拟机环境是重量级的。我们使用过VM虚拟机的都知道,每一次都需要安装一个操作系统,这个虚拟机就是一个实实在在的计算机,只不过是一个软件化的计算机。

虽然说,我们的虚拟环境如果有了真实的操作系统功能会更全面,但是在应用开发或者运行的场景下,我们不需要这样庞大的环境,太占资源而且影响了效率。使用docker,我们可以在云平台上部署更多的实例,而且每一个实例只有我们应用运行所必须得依赖,所以从经济和效率的角度,docker虚拟化方案更适用于应用开发和部署的场景。


以上图片取自:http://www.jianshu.com/p/7a58ad7fade4

原创粉丝点击