This website requires JavaScript.

docker + Gitlab CI 的持续集成(一)

2018.09.05 10:57字数 1094阅读 446喜欢 4评论 1

基于docker的前端持续集成(一)

开始之前让我们先抛几个问题

  • 什么是docker,他是虚拟机吗,有什么用
  • 怎样基于docker启动node服务或者nginx服务
  • 各级域名怎么匹配上docker服务
  • 为什么要持续集成,有什么好处

一、什么是docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

举一个栗子

前后端还未分离的时代,前端代码在java项目里,想要看效果,首先需要安装jdkjre,配置环境变量,启动tomcat,安装的版本不同,也会导致程序不能运行,如果要部署到多台服务器上,环境配置如此麻烦,换一台机器,就要重来一次,费时费力。

那能不能从根本上解决问题,应用或者软件可以带环境安装?

方案一 虚拟机

虚拟机就是在操作系统上运行的另一种操作系统,例如在macOS上安装一套windows的虚拟机,启动时跟正常启动windows无异,可以还原软件原始的环境,相互虚拟机之间完全的隔离,安全性较高
缺点:

  • 1、占用内存大
  • 2、启动速度慢 几分钟
  • 3、资源利用率低
  • 4、自带一些无用步骤,设置用户啥的

方案二 Linux 容器

这是运行在与它的宿主机器同样的操作系统上,不是模拟一个完整的操作系统,而是对进程进行隔离,相当于底层操作系统的一个进程,docker 就是基于Linux容器的开源项目
docker将应用程序与该程序的依赖,打包在一个文件里面。在一个容器中运行这个文件,就好像在真实的物理机上运行一样。所以有了docker,上边所说的环境问题就没有了。
缺点:

  • 1、安全性相对于虚拟机低
  • 2、资源隔离不如虚拟机

总结成一句话:docker是轻量的虚拟机,可以方便地创建和使用容器,把自己的应用放入容器。可以在容器内进行版本管理、就像管理普通的代码一样,非常方便

还可以参考 阮老师的 Docker 入门教程