专栏首页Java架构师进阶微服务为什么一定要用docker?阿里架构师带你彻底了解docker

微服务为什么一定要用docker?阿里架构师带你彻底了解docker

早在2013年的时候,docker就已经发行,然而那会还是很少人了解docker。一直到2014年,Martin Fowler提出了微服务的概念,两个不相干的技术终于走在了一起,创造了今天的辉煌

什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

Docker有什么用?

docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。

1.不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。比如IIS和Apache访问端口冲突。这个时候你就要隔离.net开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。

2.你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。这时候要是有docker你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。

3.在服务器负载方面,如果你单独开一个虚拟机,那么虚拟机会占用空闲内存的,docker部署的话,这些内存就会利用起来。

总之docker就是集装箱原理。

今天为大家带来的是深入浅出Docker

特点

标准化应用发布,docker容器包含了运行环境和可执行程序,可以跨平台和主机使用;

节约时间,快速部署和启动,VM启动一般是分钟级,docker容器启动是秒级;

方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合;

节约成本,以前一个虚拟机至少需要几个G的磁盘空间,docker容器可以减少到MB级;

方便持续集成,通过与代码进行关联使持续集成非常方便;

可以作为集群系统的轻量主机或节点,在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。

Docker

《Java学习、面试;文档、视频资源免费获取》

Docker的优点

1、简化程序:

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。

2、避免选择恐惧症:

如果你有选择恐惧症,还是资深患者。Docker 帮你打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

3、节省开支:

一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

总结

Docker一词意为码头工人,而Docker的功能也与集装箱类似。通常一个webapp并不会用到操作系统/虚拟机的全部功能,即操作系统/虚拟机对于一个webapp来说太过笨重。打个比方说,我要从宿舍去食堂,我并不需要一架飞机,只需要一辆自行车就够了,而Docker镜像就相当于是一辆自行车。你可以把Docker镜像理解为轻量化的虚拟机!

Docker的容器是以镜像来创建的,镜像是不是一个类似操作系统的环境? 是的,你可以将Docker理解为一个轻量化的虚拟机,至于我们经常说的什么Tomcat镜像、MySQL镜像之类的,只是这个轻量化的虚拟机中安装了相应的软件。镜像的名字也就说明了镜像的功能。

是不是到正式环境上还要安装Docker,然后把应用部署在其中? 是的,构建Docker镜像、运行Docker容器,都需要安装Docker,但这是一劳永逸的,因为我们使用的是安装了各种各样功能软件的Docker镜像和Docker容器。

最后:

这一份深入浅出Docker.PDF是可以免费送给想要学习的小伙伴!

《Java学习、面试;文档、视频资源免费获取》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 云计算的乐高积木Docker如何重构应用程序开发

    Docker的发展势态如同森林大火,势不可挡。这项新型的Linux容器技术引燃了一路上的一切东西,面对其迅猛发展的势头,我们许多人还没有回过神来。Docker不...

    静一
  • 从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(最终篇)

    本篇我们将实现应用的部署,这篇教程将首先 Docker 来容器化你的应用,接着教你配置 MongoDB 的身份验证机制,给你的数据库添加一份安全守护,最后我们会...

    一只图雀
  • 世上没有完美的架构

    微服务架构的技术体系、社区目前已经越来越成熟。在最初系统架构的搭建,或者当现有架构已到达瓶颈需要进行架构演进时,很多架构师、运维工程师会考虑是否需要搭建微服务架...

    CSDN技术头条
  • 成为鹿晗背后的男人,做高薪微博Linux运维工程师

    相信你才被鹿晗搞死微博服务器小惊动了会儿,相信你也为立即处理了微博服务瘫痪的运维小哥点赞,有没有也想成为这样的一个人,一行代码指挥上前台服务器,服务成千上万的网...

    小小科
  • Kubernetes 是什么?

    最近容器化部署服务非常火,以至于各个公司都在积极部署docker服务,今天介绍下Kubernetes,小强作为入门级选手,这是一篇 Kubernetes 的概览...

    程序员小强
  • 大白话告诉你到底用不用学习这该死的k8s容器化

    大家好,我是stanley「史丹利」。今天大家分享最近集团 AllIn容器化 的工作心得。我的分享目录列表如文章开头。

    运维部落
  • 由浅入深,循序渐进!这份阿里云大佬手写 “Docker技术入门与实战笔记” 太牛了!

    这份资料向读者清晰地介绍了 Docker 这个虚拟化工具;详细比较了Docker和传统虚拟机在组织架构、实现技术和性能上的差异。在此基础上,本书围绕着镜像、容器...

    Java程序猿阿谷
  • 看看Docker的内脏

    有人把Docker比喻成运维人员的一把“瑞士军刀”,因为他们可以通过这把军刀实现终极梦想“一次创建,到处运行”。

    童欧巴
  • Docker 搭建你的第一个 Node 项目到服务器

    关于 Docker 的概念是确实不太好总结,下面我通过四点向你说明 Docker 到底是个什么东西。

    coder_koala

扫码关注云+社区

领取腾讯云代金券