一、Docker概述
(一)Docker出现原因
1.开发和运维存在着矛盾:
- 开发完成修改后,出现“在我的电脑上可以运行,其他人未知”
2.部署环境费时费力
- 代码 or 程序可以是跨平台的,但环境是不跨平台的,需要配置环境
- 同一台机子上的不同服务所安装的环境可能存在冲突
3.部署环境
- 传统方法解决以上问题:开发者提供jar包,运维进行部署
- 解决思路:开发、打包、部署一套流程做完
4.Docker解决思路
-
举例说明
|例子|任务|操作一|操作二|操作三|
|–|--|–|--|–|
|产品发布|app发布|提交至软件商店|用户下载|用户使用|
|Docker部署|配置项目&环境|上传至Docker仓库|开发者下载发布的镜像|开发者使用| -
采用类似“集装箱”的技术
- 传统环境配置相互之间会产生影响,导致出现冲突
- 采用“集装箱”技术,即采用Docker容器技术,能够将每个项目打包,是项目配置相互“隔离”
(二)Docker的发展历史
- dotCloud:做一些pass的云计算服务
- 2013:dotCloud开源处理 -> Docker的优点得到了众多的关注
- 2014:Docker1.0发布
- 至今:Docker已成为部署开发环境的首选
(三)Docker的特点
- Docker容器技术是一种虚拟化技术
- 使用“容器进行虚拟”相比较使用笨重的虚拟机,显得特别轻巧(占用存储空间小,启动速度快)
(四)Docker简单介绍
- Docker官网:docker.com
- Docker文档信息
- Docker Hub官网:Ducker Hub
- 类似于git 和github,我们也可以使用docker命令和dockerhub进行镜像的发布和下载
(五)Docker的用途
1.容器化虚拟技术和虚拟机的差别
- 虚拟机技术
- 容器化技术
- Docker能干什么
|带环境虚拟化技术|原理(操作)|特点|备注|区别|
|–|--|–|--|–|
|虚拟机|模拟完整的硬件和操作系统后安装和云溪行软件|虚拟硬件和软件信息|占用过多资源,冗余步骤相当多,开机速度较慢|安装的环境会相互影响|
|容器化技术|不需要模拟完整的操作系统|直接运行在宿主机内核上|充分利用服务器资源,不需要虚拟硬件,较为轻便|每个容器内都有一个属于自己的文件系统,互不影响|
2.DevOps(开发、运维)
- 应用更快的交付和部署
- 传统发布方式:一堆帮助文档和安装程序
- Docker:打包镜像发布测试,一键运行
- 更简便的升级和扩缩容
- 使用Docker之后,我们部署应用就和搭积木一样
- 更简单的系统运维
- 在容器化,开发、测试环境都是高度一致的
- 更高效的计算资源利用
- 容器化技术是内核级别的虚拟化,因此可以极致地利用物理机(服务器)资源