基于docker的前端持续集成(一)
开始之前让我们先抛几个问题
- 什么是
docker
,他是虚拟机吗,有什么用 - 怎样基于
docker
启动node
服务或者nginx
服务 - 为什么要持续集成,有什么好处
一、什么是docker
Docker
是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux
机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
举一个栗子
前后端还未分离的时代,前端代码在java
项目里,想要看效果,首先需要安装jdk
、jre
,配置环境变量,启动tomcat
,安装的版本不同,也会导致程序不能运行,如果要部署到多台服务器上,环境配置如此麻烦,换一台机器,就要重来一次,费时费力。
那能不能从根本上解决问题,应用或者软件可以带环境安装?
方案一 虚拟机
虚拟机就是在操作系统上运行的另一种操作系统,例如在macOS
上安装一套windows
的虚拟机,启动时跟正常启动windows
无异,可以还原软件原始的环境,相互虚拟机之间完全的隔离,安全性较高 缺点:
- 1、占用内存大
- 2、启动速度慢 几分钟
- 3、资源利用率低
- 4、自带一些无用步骤,设置用户啥的
方案二 Linux 容器
这是运行在与它的宿主机器同样的操作系统上,不是模拟一个完整的操作系统,而是对进程进行隔离,相当于底层操作系统的一个进程,docker
就是基于Linux
容器的开源项目 docker
将应用程序与该程序的依赖,打包在一个文件里面。在一个容器中运行这个文件,就好像在真实的物理机上运行一样。所以有了docker
,上边所说的环境问题就没有了。 缺点:
- 1、安全性相对于虚拟机低
- 2、资源隔离不如虚拟机
总结成一句话:docker
是轻量的虚拟机,可以方便地创建和使用容器,把自己的应用放入容器。可以在容器内进行版本管理、就像管理普通的代码一样,非常方便
还可以参考 阮老师的Docker 入门教程
大家还可以关注我的博客无声的博客