Docker快速入门之简介
1.什么是Dcoker?
docker可以说是一个小型的虚拟环境,我们可以在上面运行我们的代码,有人就会说不是有虚拟机吗,虚拟机是可以,不过消耗资源过多,例如你一个机器上要运行几十个应用很明显是不现实的,那还会有人说那语言层面不是也有隔离吗,例如java不是有jvm吗,通过语言层面虽然资源消耗小,但是隔离性十分之差,一个应用很容易影响另一个应用,而docker取隔离和消耗的衡。
docker支持文件隔离,资源隔离,进程隔离等,这一切的实现都依赖于linux内核(所以你想在windwos运行docker本质上就是先运行一个linux虚拟机,再运行一个docker容器,捞得一),有一定的隔离性,不过还是共用一个linux内核,不是全隔离。
2.为什么需要docker?
1.开发环境和生产环境的不同。
就我现在的公司来说开发框架是自研的,但是总有一些包的导入方式在开发和生产环境是不一样的,这就很蛋疼,每次开发完,都得改一些包的导入方式,如果用docker的话,我们可以把环境分为开发,测试,生产环境,我们完全不用担心各种环境问题,我们一个镜像就能运行在不同的环境,例如在测试环境测试不过,只需要在开发重新搞就行,不用把代码改来改去。
2.节约成本
首先先简单说一下Iaas,Paas,Sass三者的区别,Iaas最为简单其实就是给你一台电脑,你想怎么搞就怎么搞,就是租电脑的。
但是一般服务都不只用到一台电脑,那问题就来了,这么多台电脑,这么多服务,从部署,到服务的后期管理是非常复杂的,还是以我现在公司为例,我们公司现在是在腾讯云上面租服务器,但是应用部署,应用编排(包括扩容,服务发现)都是自研平台,而服务器加上这些为了管理这些服务而加上的组件,称为Paas,我们一般crud程序员只需要在上面编写我们代码模块就可以了。
Saas就更简单了,连代码都不用写了,换个公司logo,界面就能用了。
现在我们知道三者的区别了,那么一般的创业公司是没有能力去基于Iaas去搞自己一套Paas系统的,那怎么办呢,现在最流行的就是k8s,k8s这些东西都能帮我们去搞,而k8s是基于docker的,大大减少了开发成本,人力成本(自己搞的,只有自己公司能看懂,你招新人进来,要重新熟悉,需要时间),而用k8s之后,有一个公开的标准,找人就容易多了(跳槽也容易多了)。
3.基础架构
我们可以看出大概分为客户端,容器,镜像,仓库,创建docker环境的软件,其中的关系图已经说的很清楚了。