上一篇咱们介绍了何为容器,下面咱们来一块看下docker容器的好处吧。
之前的项目组,有生产环境、测试环境、自动化测试环境、性能测试环境、安全测试环境、镜像环境,一共6套环境,然后每次版本升级都很痛苦。
一般一大早就开始升级,顺利的话到晚上下班前能搞定,然后我们基本都没准点下过班。各种配置问题、数据库连接问题、安装脚本问题...现在想起来都心有余悸。
然后到现在这个项目组,升级部署两分钟搞定,除了通过jenkins实现自动化之外,剩下最大的原因就是使用了docker容器。
1 、持续部署与测试
Docker 是革命性的,它重新定义了软件开发、测试、交付和部署的流程。我们交付的东西不再只是零散的代码、配置文件、数据库定义等,而是整个应用服务及其运行环境。
以前开发环境需要部署到测试环境,需要先将各个零件复制一份,然后拿到测试环境再组装,现在是将整个开发环境全部打包,挪到新环境直接用。
2、优异的跨平台性
Docker 在原有 Linux 容器的基础上进行大胆革新,为容器设定了一 整套标准化的配置方法,将应用及其依赖的运行环境打包成镜像。
Docker 是可移植(或者说跨平台)的,可以在各种主流操作系统上使用。Java 可以做到“一次编译,到处运行”,而 Docker 可以 “构建一次,在各平台上运行”(Build once,run anywhere)。
越来越多的云平台都支持 Docker,用户再也无需担心受到云平台的捆绑,同时也让应用多平台混合部署成为可能。
3、高资源利用率与隔离
Docker 容器没有管理程序的额外开销,与底层共享操作系统,性能更加优良,系统负载更低,在同等条件下可以运行更多的应用实例,可以更充分地利 用系统资源。
另外,Docker 拥有资源隔离与限制能力,可以精确地对应用分配 CPU、 内存等资源,保证了应用间不会相互影响。
Docker 是轻量级虚拟化技术。与传统的 VM 相比,它更轻量,启动速度更快,单台硬件上可以同时跑成百上千个容器,所以非常适合在业务高峰期通过启动大量容器进行横向扩展。
4、环境标准化和版本控制
可以使用 Git 等工具对 Docker 镜像进行版本控制,相比基于代码的版本控制来说,能够对整个应用运行环境实现版本控制,一旦出现故障可以快速回滚。
docker的本质是一种特殊的进程,相比以前的虚拟机镜像,Docker 压缩和备份速度更快,镜像启动像启动一个普通进程一样快速。