云原生容器Clouder认证:基于容器搭建企业级应用—课时3:容器是什么

简介: 云原生容器Clouder认证:基于容器搭建企业级应用—课时3:容器是什么

思考:容器是如何发展的,主要用在哪些场景?

了解基本的概念之后,一个疑问自然浮现心头:虚拟化和容器技术本质上有什么差异呢?小陈不太明白,于是继续求助大刘。

小陈:师傅,容器技术看上去也是一种虚拟化技术,对吗?

大刘:应该这么说,容器技术是一种全新意义上的虚拟化技术,更像是一种轻量级的虚拟化。你先了解下容器技术的发展过程,就会明白是怎么回事了。

小陈:好的。我先恶补一下容器的基础知识。


容器技术起源于 1979 年 chroot,经过长时间的发展,现已逐步成熟,并在代表性的Docker诞生后迎来了它的繁荣时代。下面是容器技术发展的一些关键时间节点:

1979年,Unix v7系统支持chroot,为应用构建一个独立的虚拟文件系统视图。

2000年,FreeBSD 4.0支持jail,第一个商用化的OS虚拟化技术。

2001年,Linux VServer诞生, 另一种 jail 机制,用于安全地区分计算机系统上资源。

2005年,OpenVZ发布,非常重要的Linux OS虚拟化技术先行者。

2006年,Google开源内部使用的process container技术,后续更名为cgroup。

2007年,cgroups 进入了 Linux 内核主线。

2008年,LXC(Linux Container)项目具备了Linux容器的雏型。

2011年,CloudFoundry开发Warden系统,一个完整的容器管理系统雏型。

2013年,Docker项目正式发布,并逐步被广泛接受,让Linux容器技术席卷天下。

2014年,Kubernetes项目正式发布,容器技术和编排系统的发展齐头并进。

2015年,由Google、Redhat、Microsoft及一些大型云厂商共同创立了 CNCF 云原生基金会,云原生浪潮启动。

2016年,推出Winodws容器,Docker 能够以原生方式在 Windows 平台上运行。

2016-2017年,容器生态开始模块化、规范化。CNCF 接受 Containerd、rkt项目,OCI 发布1.0,CRI/CNI 得到广泛支持。

2017-2019年,容器引擎技术飞速发展,新技术不断涌现。Kata Containers 社区成立,Google 开源 gVisor 代码,AWS 开源 firecracker,阿里云发布安全沙箱 1.0。

2020年之后,容器引擎技术不断升级,逐渐成为云原生基础设施……

容器借鉴了集装箱的概念,集装箱解决了什么问题呢?无论形状各异的货物,都可以装入集装箱,集装箱与集装箱之间不会互相影响。由于集装箱是标准化的,就可以把集装箱整齐摆放起来,装在一艘大船把他们都运走。有了集装箱,就再也不需要为各种货物单独准备专门运输的船了。如果把容器比作集装箱的话,应用就相当于集装箱里的货物。

容器类似“集装箱”,应用好比“货物”

 

容器概念与特点

容器(Container):一种轻量级虚拟化技术,这种技术允许操作系统上的用户空间被分割成几个独立的单元在内核中运行,彼此互不干扰。这样一个独立的空间,就称之为一个“容器”。

容器为应用软件及其依赖组件提供了一个资源独立的运行环境应用软件所依赖的组件会被打包成一个可重用的镜像,镜像运行环境并不会与主机操作系统共享内存、CPU和硬盘空间,由此也保证了容器内部的进程与容器外部进程的独立关系。

举个例子,一个操作系统,可以类比成一套公寓,那么容器就相当于公寓中的一个房间,大家共享同一个客厅,厨房和卫生间。但是房间和房间之间彼此隔离,一个房间里面的人的活动,不会影响到其他房间的住客。房间也有门,因此有一定的安全隔离保障。

容器的技术特点

  • 容器是自包含的。它打包了应用程序及其所有依赖,可以直接运行。
  • 容器是可移植的。可以在几乎任何地方以相同的方式运行。这就可以确保应用在开发环境、测试环境、生产环境等都有完全一样的运行环境。
  • 容器是轻量级的。占用资源很少,可以秒级启动。
  • 容器是互相隔离的。同一主机上运行的多个容器,不会互相影响。

 

容器技术和虚拟化的比较

通过对容器技术的学习,小陈回头来看,发现容器和虚拟机有联系,也有差异。于是做了下容器和虚拟机的详细比较。

在虚拟化架构中,底层是硬件,往上是虚拟化层hypervisor,之上安装虚拟机操作系统,接着配置应用运行所需的依赖环境,然后安装APP。而在容器架构中,底层也是硬件,往上是操作系统而不是虚拟化层hypervisor,再安装容器引擎,就可以在容器中配置应用运行依赖并安装APP。

这两种架构,一个很直观的对比结果是,容器的运行不需要再额外安装虚拟机操作系统。可见,容器是一种比虚拟机更轻量级的虚拟化技术支持秒级启动具备更好的快速扩展能力,具备更好的跨平台迁移能力。当然也由于这个原因,容器的隔离性上不如虚拟机。两者主要差异如下:

  • 虚拟机OS占用了较多资源,一个虚拟机基本是GB 级的,一个容器可小至几MB。
  • 虚拟机的启动时间一般是分钟级的,而容器的启动时长是毫秒级的。
  • 由于容器的轻量级,它具备了更好的快速扩展能力。
  • 容器比虚拟机具备更好的跨平台迁移能力,如虚拟机无法从Vmware迁移至KVM。





练习实验:通过ACR快速部署网站应用

https://developer.aliyun.com/adc/scenario/exp/79f68855f1194655bb08e125b59ec104?

相关文章
|
9月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
2307 89
|
10月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
518 8
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
1375 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
465 0
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
811 12
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
541 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
900 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
存储 数据管理 对象存储
云存储Clouder认证:存储应用与数据管理—课时10:实验练习与认证考试
云存储Clouder认证:存储应用与数据管理—课时10:实验练习与认证考试