Docker 学习应用篇之一: 初识Docker
Docker 自从2013年以来就非常的火热,无论是从github上的代码活跃度,还是Redhat在RHE6.5中集成对Docker的支持,等等。第一次接触Docker,还是老师给我们介绍的。
1.初识Docker
一开始接触Docker不知道它是干啥的。百度了一下,Docker是为开发者和系统管理员设计的,用来发布和运行分布式应用程序的一个开放性平台。Docker是一种Linux容器工具集,Docker的思想来自于集装箱,在一艘船上可以把货物规整的摆放起来。每个集装箱都是专门装一种货物的,集装箱和集装箱之间互不干扰,于是就不需要专门运送某个物品的船,一艘大船把所有集装箱都装上,一次运走。其实这种解释对于我们开发程序的人来说,还是有点抽象。具体的来说呢,就是你有一台电脑,这就相当于一艘大船,你可以选择开发c++或者c#的程序,那么这台电脑就要有支持开发的c/c#语言环境,还有开发工具,和服务器。这个时候,这艘船相当于只能运送苹果,如果你想同时开发c的程序,也想开发python的程序,应该怎么办呢?那就要装python的运行环境,和开发工具,服务器。这样可能会和之前的c环境冲突,比如端口冲突。所以这个时候我们就需要Docker,他就像一个集装箱,把python的环境和c的环境,分别集装起来,让二者互不干扰。这样一个电脑,可以开发多种软件。Docker的好处当然远不止这个咯。
2. Docker的优点
1) 轻量级:单机可以轻松支持上百个Container(集装箱),让个位数的虚拟化方案相形见绌
2)快速就绪:一秒以内就可以启动,速度很快捷
3)快速部署:Docker-file 可以快速在多台机器上部署开发环境
3.Docker和虚拟机
说到Docker就要提到虚拟机了,在Docker流行之前,虚拟机是开发人员部署开发环境的普遍方法。但是虚拟机的缺点是消耗太多不必要的资源和内存,速度也很慢。从一张图就可以看出为什么Docker会比虚拟机更快,更方便。
可以看到Docker和VM的区别,是没有Guestos,而是用Docker Engine代替。虚拟机的Guest OS即为虚拟机安装的操作系统,它是一个完整的操作系统内核,而Docker就显得简练很多,docker Engine可以简单看成对Linux和NameSpace,Cgroup,镜像管理文件的系统操作的分装。Docker没有和虚拟机一样利用一个完全独立的Guest OS 实现环境隔离,它利用的是目前Linux内核本身支持的容器实现资源和环境隔离。
这就是对Docker的初步认识。Docker 第二篇就要学习如何安装和简单实用Docker.