我们都知道应用是要部署在服务器上,服务器就是一台物理机,真实存在的机器,物理机器是需要安装操作系统才能使用的,再往上层才是我们的应用系统。早些年的应用在服务器的状态:一个应用发布在一个物理机上。缺点是很明显的,成本高,资源浪费,应用兼容性问题,应用受限于操作系统等等。大概是酱紫:

轻轻松松搞清楚容器技术_java

----

后来就出现了虚拟化技术,在一台物理机上可以创建多个虚拟机,虚拟机有自己的操作系统,互不干扰。大大提高了资源利用率,系统可用性,易于扩展迁移,应用独立部署等等。唯一可能的缺点就是,每个虚拟机都有自己的操作系统,操作系统本身要占用较多的系统资源。大概酱紫:

轻轻松松搞清楚容器技术_java_02

----

容器也不是什么新技术了,现在提到容器技术第一反应就是docker了。以linux为例,docker是在宿主机的用户层上虚拟出了一个容器,容器包含操作系统的一小丢丢东西,使用的依旧是宿主机的内核。一个容器就是一个运行的进程,对操作系统,网络等资源进行了封装。启动一个容器,就是通过镜像创建一个执行应用程序,镜像相当于一个应用模版。

轻轻松松搞清楚容器技术_java_03

图片引用自docker官网

大概就是这样了,系统镜像可以从docker hub拉取,就和从git hub上获取资源一样。应用镜像通过Dockerfile构建,就和maven构建pom一样。容器多了需要管理,自然就有了容器编排技术。今天的分享就到这里,下一节使用docker构建一个自己的应用程序。