1. 需求
软件开发一般大致分为两个环节,第一是本地开发, 第二是服务器部署。如果一个项目本地开发好了,那么放到服务器上,有时候安装环境会非常复杂,也正是因为其复杂性,大公司才会有专门负责项目发布的运维人员。为了解决这个问题,docker技术应运而生。
2. 技术特点
- 环境隔离
Docker是一种虚拟化技术,一大特点就是环境隔离。我们知道既然是虚拟化技术,环境隔离必然是其一大特点,比如我们之前使用过的虚拟机virtualBox,可以通过该软件安装很多个系统镜像,然后做到系统与系统之间的隔离。那么,作为一种非常火的容器技术,那么它还有其他技术特点吗?
- 镜像小
VirtualBox虽然能够完成系统之间的隔离,但是,这些系统文件的镜像都是非常巨大的,常常能够达到几个G,甚至几十G,这样的体量会让我们的个人电脑无法承受。
上图是我们传统的软件配置模型,app是指我们开发的应用程序,lib是指这些软件需要的环境,那么所有的app都是基于我们在电脑中的这一个环境。
上图则是Docker中的环境配置,每个小块都是一个容器,有自己的一套环境,而且,内核采用的也是简化版内核。能够做到非常小的体积
- 满足更快速的交付和部署
在敏捷开发的当下,快速开发应用是非常重要的。传统的方式是开发要写一堆文档供运维人员使用,然后运维按照文档配置好环境并讲开发好的jar包跑进入。那么现在有了docker,开发人员只需要将jar+环境打包好,丢给运维,让运维运行起来就可以了。而且,比如应用需要升级,那么环境又要变更,这个过程非常麻烦且痛苦,那么使用docker以后,就可以将新内容打包一并发送给运维再次执行便可以。