一 什么是虚拟化

在计算机中,虚拟化(Virtualization)是一种资源管理技术,是计算机的各种实体资源,如服务器,网络,内存及存储等,予以抽象,转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储

在世纪的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老旧的硬件产能过低的重组崇勇,透明化底层物理硬件,从而最大化的利用物理硬件,对资源充分利用

虚拟化技术种类很多,例如:软件虚拟化,硬件虚拟化,内存虚拟化,网络虚拟化,桌面虚拟化,服务虚拟化,虚拟机等

二 什么是Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),社区版免费,企业版收费。

三 容器与虚拟机比较

下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

虚拟机:

Docker:

四 Docker的使用场景

1、Web应用服务

Web应用服务是使用最广泛的一类服务,典型的架构是前端一个Tomcat + Java服务,后端mysql数据库。前端的Java web服务器是最适合使用Docker容器的,先将Java运行环境、web服务器直接打包成一个通用的基础docker镜像,之后再将自定义应用代码或编译程序包加入到该基础镜像中就能产生一个新的应用镜像,最后通过docker服务立马就能以容器的形式启动web应用服务。因为web应用程序一般是无状态的,随着业务访问量增减,用同样的镜像新建、销毁容器即可轻松实现伸缩(前面还需配上DNS域名或者负载均衡的服务),例如下图所示。

2、持续集成和持续部署

互联网行业倡导敏捷开发,使用docker容器云平台,就能实现从代码编写完成推送到git/svn后,自动触发后端平台将代码下载、编译并构建成测试docker镜像,再替换测试环境容器服务,自动在Jenkins中运行单元/集成测试,最后测试通过后,马上就能自动将新版本镜像更新到线上,完成服务升级。整个过程全自动化,一气呵成,最大程度地简化了运维成本,而且保证线上、线下环境完全一致,而且线上服务版本与git/svn发布分支也实现统一。

3、微服务架构使用

微服务架构将传统分布式服务继续拆分解耦,形成一些更小服务模块,服务模块之间独立部署升级,这些特性与容器的轻量、高效部署不谋而合。如下图所示,每个容器里可以使用完全不同环境的镜像服务,容器启动即产生了一个独立的微服务主机节点,上层服务与下层服务之间服务发现通过环境变量注入、配置文件挂载等多种方式灵活解决,而且还可以直接将云平台提供的各种云服务与自定义的微服务整合组成一个强大的服务集群。

更重要的是,拥有如此多服务的集群环境迁移、复制也非常轻松,只需选择好各服务对应的docker服务镜像、配置好相互之间访问地址就能很快搭建出一份完全一样的新集群。

五 Docker的优点

1、更快速的交付和部署

对开发和运维人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。

开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

2、更高效的虚拟化

Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。

3、更轻松的迁移和扩展

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

4、更简单的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。

docker web程序本地化_Docker-01-Docker介绍相关推荐

  1. docker web程序本地化_Docker 容器化部署 Python 应用

    点击上方"Python数据科学",星标公众号 重磅干货,第一时间送达☞满600减350,当当这波羊毛我撸定了!♚作者:jerry,爬虫/数据分析/Web.Blog: http:// ...

  2. docker web程序本地化_Docker教程

    ​Docker安装 Windows安装Docker(图解教程) Mac OS安装Docker(图解教程) Linux安装Docker(详解版) Windows Server安装Docker Docke ...

  3. docker web程序本地化_docker化java web应用

    一.简介 Docker是一个使用Go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的机器上.Docker的发展速度和火爆程度着实令人惊叹,一 ...

  4. docker web程序本地化_想要成为前端Star 吗?一首歌时间将React / Vue 应用Docker 化...

    前言 以前一直有疑问困扰着我:人人都在吹的Docker容器化,与前端有何关系? 然而在近两年的编程生涯,在每一次产品迭代中,渐渐体会到了容器化其魅力所在. 应用部署从刀耕火种,到DevOps崛起,原来 ...

  5. docker前后端分离_Docker分离模式介绍

    docker前后端分离 Docker分离模式 (Docker detached mode) Detached mode, shown by the option --detach or -d, mea ...

  6. docker compose dns 缓存_Docker深入浅出 | Docker Compose多容器实战

    Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会根据本人理解去做阐述,具体官方概念可以查阅官方 ...

  7. 查看此docker网络连接模式_Docker系列-Docker 网络模式及配置

    一.Docker网络模式 docker run 创建 Docker 容器时,可以用 –net 选项指定容器的网络模式,Docker 有以下 4 种网络模式: host 模式,使用 –net=host ...

  8. 查看此docker网络连接模式_Docker网络模式介绍

    一.概述 docker的网络驱动有很多种方式,按照docker官网给出的网络解决方案就有6种,分别是:bridge.host.overlay.macvlan.none.Network plugins, ...

  9. 【web程序开发】前端标签介绍

    文章目录 基础标签 行标签与块标签 1.多级标题标签 2.段落标签 < p >与< span > 3.行标签与块标签的异同 文本标签 图片标签 表格标签 表格的标签和属性 列表 ...

最新文章

  1. 从Java视角理解CPU上下文切换(Context Switch)
  2. 网易云信:要做就做轻量级、小而美的云产品
  3. jmeter线程数并发数区别_如何确定Kafka的分区数、key和consumer线程数、以及不消费问题解决...
  4. 分子动力学模拟软件_功能玻璃专题——分子动力学模拟预测氧化钠含量对二元钠硅酸盐玻璃弹性模量的影响...
  5. 关于GPS 车辆定位导航中的投影变换
  6. pycharm python 模板配置_pycharm设置python脚本模板
  7. 液位单闭环实验计算机控制,过程控制实验报告3(液位单闭环实验)
  8. linux vim命令及使用,极大提升使用linux的舒适程度
  9. air写文件 SecurityError: fileWriteResource 时报错的解决方法
  10. 前端笔试题【1】--从字符串的第二个字符开始对数组进行排序
  11. OTFS Channel Estimation(1)
  12. 直方图规定化(匹配)
  13. 2021年下半年软件设计师下午真题及答案解析
  14. SQL数据分析常用案例总结
  15. 华北理工大学计算机考研怎么样,华北理工大学考研难吗
  16. c语言数据流量换算算法,流量累积计算.doc
  17. bin是什么文件,要如何打开?
  18. adc网络语什么意思_王者荣耀游戏术语解释 ADC是什么意思
  19. ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version 36
  20. 上传项目代码到Github|Gitee

热门文章

  1. oracle之单行函数之分组函数
  2. 前端学习(494):在XHTML中得用法
  3. 实例56:python
  4. 移动端click延迟和tap事件
  5. CSS之Screen视图属性
  6. 如果你还不了解GBDT,不妨看看这篇文章
  7. 机器学习入门系列(1)--机器学习概览
  8. request用法_虚拟语气用法总结
  9. git 为什么不能断点_跟我一起学docker(九)--持续系统集成了解下git
  10. 单片机 架构 程序 经验总结_单片机“死机”了怎么办?看看一个资深工程师的经验总结...