Docker 为什么出现?

开发与上线是两套环境,发布一个项目环境配置十分麻烦,开发环境与上线环境不一致,在集群中每台机器都需要单独配置这对项目的运维是巨大的考验。
传统模式:开发提供jar包,运维人员部署上线。
现在模式:开发打包上线,一套流程做完。
Java —> jar(环境)—>打包项目带上环境(镜像)—> Docker仓库—->下载发布的镜像—->运行即可
类似于手机在应用商城下载APP的安装包,安装即可使用。
Docker 给以上问题,提出了解决方案。

关于Docker

官网: https://www.docker.com/
image.png
文档:https://docs.docker.com/ 超级详细!
仓库地址:https://hub.docker.com/ 类似于git
Github Docker 源码:https://github.com/docker/docker-ce

Docker与虚拟机比较

  • 传统虚拟机,虚拟出硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
  • 容器内的应用直接运行在宿主机的内部,容器是没有自己的内核的,也没有虚拟的硬件,所以就轻便了
  • 每个容器都是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响

    DevOps(开发、运维)

应用更快的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行
更便捷的升级和扩缩容
使用了Docker之后,我们部署应用就和搭积木一样
项目打包为一个镜像,扩展 升级更简单
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算机资源利用
Docker是内核级别的虚拟化,可以在一个物理机上运行很多容器实例,服务器的性能可以压榨到极致。