什么是Docker?
Docker 是一个开源的容器管理引擎。开发者可以通过Docker直接管理应用程序所需要的容器。它的logo如下:
为什么需要Docker
使用Docker主要有两个原因,
1、屏蔽不同环境的硬件差异,减轻开发人员在不同环境上,为了适配环境差异所需要做的工作。如各项系统配置、环境变量、基础包等。
2、统一服务部署的和执行的差异,让环境部署统一化流程化。(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )
以上是笔者在长期使用docker后的认知。如果你第一次接触docker,或者只是听过docker的大名,感觉上文说的很模糊,则不必关注这些细节,
使用多了自然有自己的体会。你只需要知道Docker是类似于虚拟机的一个新兴产品。他可以统一管理各类虚拟机的安装和运行。注意这里是类似,docker虽然和虚拟机一样都是通过虚拟化技术来实现程序以及运行环境的部署和运行,但是二者在设计和实现中有着本质的区别。docker更加轻量级,占用的系统资源更少,响应速度也更快,更便捷。这也是为什么虚拟化技术推广了很多年,传统的虚拟化机一直不温不火,而docker一经推出后,才真正带动了这个市场。以下是我找到的一些两者的对比资料:
接下来讲讲docker的一些基本概念:
镜像:
docker中最基本的概念之一,可以理解为编程语言中的类。或者理解为某一个虚拟机的安装包。
容器:
docker中最基本的概念之一,可以理解为编程语言中的对象。也就是镜像实例化后的产物。再粗糙一点,可以说是虚拟机安装包后实际运行起来的应用程序。
DockerFile:
一个用来描述docker 镜像制作流程的声明式的脚本文件。该文件会描述镜像的制作流程以及环境变量等系统参数。但是不要担心,我们在制作镜像时,并不是从0开始写一个镜像,而是基于某一个基础镜像来制作的。常用的基础镜像早已由各个的生产厂商制作好了。我们直接拿来使用即可。至于如何编写DockerFile,会在后文中介绍。(防盗连接:本文首发自http://www.cnblogs.com/jilodream/ )
镜像仓库:
镜像仓库也就是保存在远端的用于存储镜像的仓库。我们在使用镜像时,需要将远端的仓库中的镜像先下载到本地,然后本地在根据镜像,生成对应的容器。
镜像仓库可以是外部开发的镜像仓库,也可以是出于安全考虑,自己搭建的仓库服务,常用的有harbor。
大家有没有发现其实docker的设计思路和maven非常想象。
公共组件放置在远端仓库(镜像仓库),本地需要就下载。下载下来各种包(镜像)以后,我们直接使用实例(容器)。
在回到docker,docker 的logo如上图,是一条鲸鱼,承载着各个集装箱。
集装箱在英文为Container [kənˈteɪnər],也就是容器的意思。
docker 是什么意思,[ˈdɑːkər] 码头工人。也就是说docker 就是一个容器的管理系统,负责组装、搬运、卸载我们的容器。