一, Docker解决的问题
由于不同的机器有不同的操作系统, 以及不同的库和组件, 将一个应用部署到多台机器上需要进行大量的环境配置操作
Docker应运而生 主要解决环境配置问题, 它是一种虚拟化技术, 对进程进行隔离
优点: 使用Docker可以不修改应用程序的代码, 不需要开发人员学习特定环境下的技术, 就能将现有的应用部署到其他机器上
二, 与虚拟机比较
虚拟机也是一种虚拟化技术,它与 Docker 最大的区别在于它是通过模拟硬件,并在硬件上安装操作系统来实现。
启动速度
启动虚拟机需要先启动虚拟机的操作系统,再启动应用,这个过程非常慢;
而启动 Docker 相当于启动宿主操作系统上的一个进程。
占用资源
虚拟机是一个完整的操作系统,需要占用大量的磁盘、内存和 CPU 资源,一台机器只能开启几十个的虚拟机。
而 Docker 只是一个进程,只需要将应用以及相关的组件打包,在运行时占用很少的资源,一台机器可以开启成千上万个 Docker。
三, 优势
更容易迁移
提供一致性的运行环境。已经打包好的应用可以在不同的机器上进行迁移,
而不用担心环境变化导致无法运行。
更容易维护
使用分层技术和镜像,使得应用可以更容易复用重复的部分。复用程度越高,维护工作也越容易。
更容易扩展
可以使用基础镜像进一步扩展得到新的镜像,并且官方和开源社区提供了大量的镜像,
通过扩展这些镜像可以非常容易得到我们想要的镜像。
四, 使用场景
搭建微服务架构