Docker 概述
Docker为什么出现
一款产品: 开发到上线,有两套环境自己本地的环境和生成环境, 这时候环境不一致可能会导致各种问题, 或者代码的版本更新导致的bug
另外一个原因: 环境的配置是十分麻烦的, 单机还算好说, 如果是集群的话每一台机器都需要部署环境 这是很费时费力的
例: 目前php项目上线都是先在服务器上部署好环境再把git仓库的代码拉去下来运行的, 这里就可能会产生环境不一致的问题, 所以有人就想能不能在项目打包的时候把环境也代码一起打包
传统: 开发写代码, 运维来部署
现在: 开发打包部署上线 ,一套流程做完
Docker 解决以上问题
Docker 的核心思想
- Docker的思想来自于集装箱, 以php,nginx,mysql为例 其中的每个服务都是一个小的集装箱, 它们之间是相互隔离的
- Docker想把所有的服务都打包装箱
Docker和虚拟机的区别
- 在容器技术出来之前, 我们使用的虚拟机技术
- 虚拟机是在 win, mac 系统中安装一个虚拟机软件, 通过软件我们可以虚拟出来一个或者多台电脑. 这样是很笨重的!
- 虚拟机也是虚拟化技术, Docker容器技术也是一种虚拟机技术
虚拟机技术
虚拟机的缺点
- 占用资源多
- 冗余步骤多
- 启动慢
容器化技术
容器化技术它不是模拟的一个完整的操作系统
Docker和虚拟机的不同
- 传统虚拟机, 虚拟出硬件, 运行一个完整的操作系统. 然后在这个系统上安装和运行软件
- docker容器内直接运行宿主机的内核,容器是没有直接的内核的也没有虚拟硬件, 所以就轻便的很多
- 每个容器之间是相互隔离的, 每个容器内都有属于自己的文件系统, 互不影响 就算是有其中一个容器也就是服务挂了也不会影响到其他的容器正常运行