官网: https://www.docker.com/
Docker概述
Docker为什么出现
-
原因:环境配置不能跨平台
-
方案
传统方式:jar(开发人员)+ 部署(运维人员)
解决方式:开发打包上线一套流程
-
Docker的思想来源于集装箱
- JRE — 多个应用(容易引起端口冲突/配置错误/连接错误)— 原来是交叉应用的
- 隔离:Docker核心思想,打集装箱,每个箱子都是互相隔离的
-
Docker通过隔离机制可以将服务器利用到极致
Docker历史
- Docker:容器化技术,
- 也是一种虚拟化技术,相对于虚拟机较为轻巧,
- 最核心的环境只有几兆,可以在这个基础上添加jdk和mysql环境,
- 运行的时候运行镜像就可以
Docker是基于Go语言开发的一个开源项目
官方文档: https://docs.docker.com/
仓库地址: https://hub.docker.com/
Docker能做什么
虚拟机
虚拟机技术缺点
- 资源占用多
- 冗余步骤多
- 启动较慢
容器化技术
容器化技术不是模拟的一个完整的操作系统
Docker 和 虚拟机技术 的不同
- 传统虚拟机:虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以较为轻便
- 每个容器间是相互隔离,每个容器内都有一个属于自己的文件系统,互不影响
DevOps(开发+运维)
四个特点:
应用更快速的交付和部署
- 传统:一堆帮助文档,安装程序
- Docker:打包镜像 发布测试 一键运行
更快捷的升级和扩缩容
- 使用了Docker之后,部署应用就像搭积木一样
- 将项目打包为一个镜像(带着环境,可以直接运行),水平扩展 服务器A;服务器B(当服务器A遇到问题需要用负载均衡解决的时候可以在服务器B上直接运行镜像,这样就可以实现扩展)
更简单的系统运维
容器化之后,开发、测试环境都是高度一致的
更高效的计算资源利用
Docker是内核级别的虚拟化,可以在一个物理机上运行很多容器实例,服务器的性能可以被压榨到极致