Docker学习1:何谓容器,为何需要它

与传统虚拟机的区别

容器是对应用程序及其依赖关系的封装。
看起来容器就是个轻量级的虚拟机,但是其具有传统虚拟机不具备的优点:

  1. 容器能与宿主机的操作系统共享资源,其效率相比传统虚拟机高出至少一个数量级;
  2. 容器具有可移植性;
  3. 容器是轻量级的,可同时运行的容器数量,远远超过仅使用传统虚拟机的数量;
  4. 对于用户与开发者,容器可封装应用程序及其依赖环境与配置,节约部署成本。

传统虚拟机与容器的目标是不相同的。传统虚拟机的目的是要完整的模拟一个环境,而容器的目的是使得应用程序能够轻便地移植,不丢失依赖关系。
在这里插入图片描述
在这里插入图片描述

概念

Docker利用现有的Linux容器技术,以不同的方式将其封装及扩展,主要是通过提供可移植的镜像,以及一个用户友好的接口,来创建一套完整的容器创建及发布方案。

Docker平台包括两个部分:

  1. 负责创建与运行容器的Docker引擎;
  2. 用来发布容器的云服务Docker Hub。

容器能够保障可移植性及隔离性,使得开发与运维之间更容易协作,开发者将应用程序与依赖环境封装在容器中,知道他们的代码在不同的环境下都能工作,而运维者只专注于容器的托管与服务编排,而不关心应用程序运行的事情。

哲学思想

英文单词docker的含义是“码头工人”。因为Docker的哲学思想来自航运集装箱的比喻。

在运输货物时,需要使用到多种不同的运输工具,包括火车,轮船,起重机,叉车等,要求这些运输工具能够处理大小不一,运输需求各异的货物,对于运输工具的设计要求很高。

而集装箱的发明则为运输行业带来一场革命。集装箱的大小,体积具有统一的标准,所有的运输工具,包括火车,轮船,起重机,叉车等都为搬运这些集装箱而设计。因此运输业只需专注于处理集装箱本身的搬运与存储问题,而集装箱内的东西则完全由货运生产商负责

因此Docker的目标就是将集装箱的标准化流程运用到IT行业中。

现在的软件行业多样性丰富,包括使用各种框架,各种编程语言写的各种应用程序,能够在各种不同的硬件上运行——从开发者的笔记本,到公司内部的测试集群,在到云端的生产环境等。但是各个硬件环境都会存在差异,包括不同的操作系统,不同的程序库等。

Docker容器简化了移动程序的工作,好比集装箱简化了货物运输一样。开发者只关注程序的开发,不用担心测试与正式发布时环境与依赖关系的异常问题。运维只专心处理分配资源,启动与停止容器等相关部署迁移容器的工作。

微服务

微服务是容器主要的用例,也是容器技术兴起的最大推动力。

微服务是一种软件系统开发与构成形式,由小而独立的单独组件组成,这些组件通过网络互相连接沟通。

而传统的单一架构软件开发模式,只有一个庞大的程序。当需要扩展一个单一架构软件时,纵向扩展是唯一选择,即需要将机器升级,扩展内存,升级CPU,才能应付更多的负载。

而对微服务架构软件扩展时,只需要横向扩展,即需部署多台机器分摊负载即可。还可以针对系统中的瓶颈,只扩展某个特定的服务所需的资源。

容器与生俱来的轻量级特性与快速启动,意味着其尤其适合于微服务架构。

为什么要使用docker

  1. 更高效低利用系统资源。docker运行不需要额外的硬件虚拟和操作系统运行的开销。
  2. 更快速的启动速度。
  3. 一致的运行环境。docker镜像提供了除内核以外的完整的运行时环境,确保了应用运行环境的一致性。
  4. 持续交付和部署。通过docker来定制应用的镜像来实现持续集成,持续交付和持续部署。
  5. 更轻松的迁移。
  6. 更轻松的维护和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值