我们写的代码会接触到好几个环境:开发环境、测试环境以及生产环境:
不同环境的切换就很容易导致水土不服:比如 开发环境JDK使用的是 1.8 ,测试人员用的是1.7,所用在测试阶段,可能会出现bug,影响项目进度!
1.1 Docker概念
- Docker 是一个开源的应用容器引擎
- 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)。
- Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。
- 容器是完全使用沙箱机制,相互隔离 容器性能开销极低。
- Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
- Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上
- 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
- 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
例子:
镜像就是我们运用程序,比如 mysql redis tomcat等 ,我们要使用它们,就必须去下载,那么去哪里下载呢?那就是去仓库下载,默认情况下,将来从docker hub(https://hub.docker.com/)上下载docker镜像,太慢。一般都会配置镜像加速器,比如阿里云的,那么下载完之后,就要运行使用,那么运行起来的程序就叫做容器
结论:
简而言之 Docker 就是一个大的载体,和我们的操作系统很像,用来装载我们的软件和项目,使用它的好处就是它更简单,方便管理,它提供了自己特有的命令,供使用者配置来使用Docker,这也是目前比较主流的运维部署工具



