- java -> apk -> 发布(应用商店) --- 张三使用apk-> 安装即可
- java -> jar(环境) -> 打包项目带上环境(镜像) -> Docker仓库(商店) --- 张三使用发布的镜像 -> 下载镜像直接运行即可
- Docker的思想来源于集装箱
Docker vs VM
Docker和虚拟机技术的不同
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个操作系统上安装和运行软件
- 容器内的应用直接运行在宿主机,容器是没有自己的内核的,也没有虚拟我们的硬件,因此较轻便
- 每个容器间都是相互隔离的,每个容器内部都有一个属于自己的文件系统,互不影响
DevOps
1. 应用更快速的交付和部署
- 传统: 一堆帮助文档,安装程序
- Docker:打包镜像发布测试,一键运行
2. 更便捷的升级和扩容
- 使用docker后,部署应用如同搭积木
- 项目整体打包为一个镜像,并扩展到不同的服务器
3. 更简单的系统运维
- 在容器化后,开发、测试环境都是高度一致的
4. 更高效的计算资源利用
- Docker是内核基本的虚拟化,可在一个物理机上运行多个容器实例,把服务器的性能压榨到极致