1.解决的问题
由于不同的机器有不同的操作系统以及不同的库和组件,将在一个应用部署到多台机器上需要大量的环境配置操作。
Docker主要解决环境配置问题,是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主操作系统及其它隔离的进程。使用docker可以不修改应用程序。
2与虚拟机的比较
启动速度:
启动虚拟机,先启动操作系统,再启动应用,非常慢
启动docker就是在宿主机上启动一个进程
占用资源:
虚拟机是一个完整的操作系统,需要大量的磁盘,cpu,内存,一台机器只能开几台虚拟机
而docker只是一个进程,只需要将应用和相关的组件打包,在运行时占用很少的资源
3优势:
更容易迁移
更容易维护
更容易扩展
4.使用场景
持续集成:
持续集成指的频繁地代码集成主干上,这样能够更快发现错误。
docker具有轻量级以及隔离性的特点,将代码集成到docker中不会对其他的docker产生影响
提供可伸缩的云服务:
根据应用的负载情况,可以容易地增加或减少dokcer
搭建微服务框架:
docker轻量级的特点,使他很适合用于部署,维护,组合微服务
5.镜像和容器
镜像是一种静态的结构,可以看成一种看成面向对象里面的类,而容器是镜像的一个实例
镜像包含着容器运行时所包含的代码及其它组件,是一种分层结构,每一层都只是只读的。构建镜像时会一层一层的构建,前一层是后一层的基础。
镜像这种分层结构很适合镜像的复用和定制。