docker解决实际问题及应用场景教程
一、 传统软件行业中存在的问题
开发、生产、测试环境不一致,开发环境下可用的服务挪到生产上不可用。
不同环境之间迁移成本太高,没有统一的软件部署封装标准及封装环境。
对于分布式软件持续集成(测试、打包、发布、部署、管理)周期很长,难以自动化、工程化。
面临瞬时用户流量增大的场景,很难实现分布式应用服务实例的快速部署。
二、集装箱与docker之间的关系
通常称docker为软件行业的集装箱技术,那么docker和集装箱有什么相似之处呢?
三、docker与虚拟机的区别
docker和虚拟机在某些应用场景下比较像,但是docker不是虚拟机。
docker是一种虚拟化容器技术,他和虚拟机最根本的区别是:docker容器和宿主机共用linux操作系统内核,不会在宿主机上再次安装操作系统。docker容器运行状态下的本质是宿主机上的进程,通过namespace资源隔离,cgroups资源限制,使它看上去像是一个独立的虚拟机.
四、docker的应用场景
docker镜像一旦构建,就已经一次性完成了应用自动打包、集成。docker镜像可以进行版本管理、复制、分享、修改,就像管理代码一样。
通过统一的docker环境封装(比如镜像中封装了同一版本的JDK、同样的环境变量等等),保证应用服务运行环境的一致性。避免出现在测试环境上好用,挪到生产环境下运行失败的问题。
docker可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
因为镜像可下载、可复用,docker容器可快速启动等特性,结合容器编排服务(k8s)可以实现大型分布式部署的弹性伸缩,快速扩展。
开发、生产、测试环境不一致,开发环境下可用的服务挪到生产上不可用。
不同环境之间迁移成本太高,没有统一的软件部署封装标准及封装环境。
对于分布式软件持续集成(测试、打包、发布、部署、管理)周期很长,难以自动化、工程化。
面临瞬时用户流量增大的场景,很难实现分布式应用服务实例的快速部署。
二、集装箱与docker之间的关系
通常称docker为软件行业的集装箱技术,那么docker和集装箱有什么相似之处呢?
三、docker与虚拟机的区别
docker和虚拟机在某些应用场景下比较像,但是docker不是虚拟机。
docker是一种虚拟化容器技术,他和虚拟机最根本的区别是:docker容器和宿主机共用linux操作系统内核,不会在宿主机上再次安装操作系统。docker容器运行状态下的本质是宿主机上的进程,通过namespace资源隔离,cgroups资源限制,使它看上去像是一个独立的虚拟机.
四、docker的应用场景
docker镜像一旦构建,就已经一次性完成了应用自动打包、集成。docker镜像可以进行版本管理、复制、分享、修改,就像管理代码一样。
通过统一的docker环境封装(比如镜像中封装了同一版本的JDK、同样的环境变量等等),保证应用服务运行环境的一致性。避免出现在测试环境上好用,挪到生产环境下运行失败的问题。
docker可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
因为镜像可下载、可复用,docker容器可快速启动等特性,结合容器编排服务(k8s)可以实现大型分布式部署的弹性伸缩,快速扩展。