一款产品:开发到上线 两套环境!应用环境,应用配置!java
可能在开发环境你的产品是正常的,可是到了线上环境你的产品可能就会出现各类缘由,或许是由于环境的不一样,也多是由于配置的不一样等等各类缘由致使服务的不可用!对于运维来讲,考验就很是大。sql
环境配置是十分的麻烦,每个机器都要部署环境(集群Redis、ES、Hadoop等等)!费时费力。docker
如今你须要发布一个项目(jar包 +(环境 Redis、Mysql、JDK、ES)),项目须要带上环境安装打包!此时Docker就能够帮你解决。服务器
至关于Docker帮你将jar包和环境打包到一块儿部署上线,一套流程作完!运维
举个抽象的例子你用Java开发的apk应用(应用商店)而后吕世昊使用apk安装便可使用,而Docker是你用java开发一个jar,而后依赖一些环境如Mysql等等,而你只须要将这个jar和环境打包成一个镜像文件而后发布Docker仓库中(商店),吕世昊就能够下载你发布的Docker镜像,一键运行就ok了。oop
Docker是基于Go语言开发的!开源项目!测试
Docker的官网:https://www.docker.comui
Docker的文档地址:https://docs.docker.com/ (Docker的文档是超级详细的)阿里云
Docker的下载:(进入Docker文档页面就有下载的入口)操作系统
Docker的仓库地址:https://hub.docker.com/
传统虚拟机,虚拟出一条硬件,运行一个完整的操做系统,而后在这个系统上安装和运行软件
Docker容器内的应用直接运行在宿主机的内容,Docker容器是没有本身的内核的,也没有虚拟咱们的硬件,因此就轻便了
每一个Docker容器间是互相隔离,每一个Docker容器内都有一个属于本身的文件系统,互不影响。
应用更快速的交付和部署
传统:给你一大堆帮助文档,安装程序。
Docker:打包镜像发布测试,一键运行。
更便捷的升级和扩缩容
使用了Docker以后,咱们部署应用就和搭积木同样!
项目打包为一个镜像,扩展 服务器A!服务器B!
更简单的系统运维
在容器化以后,咱们的开发,测试环境都是高度一致的。
更高效的计算资源利用:
Docker是内核级别的虚拟化,在一个物理机上能够运行不少容器实例。