云原生容器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?

相关文章
|
7月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1076 108
|
7月前
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
5月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
8月前
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
534 59
|
8月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
618 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
8月前
|
缓存 Java Docker
如何对应用代码进行优化以提高在Docker容器中的性能?
如何对应用代码进行优化以提高在Docker容器中的性能?
391 1
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
483 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
7月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
644 17
|
7月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
|
11月前
|
运维 Cloud Native 测试技术
极氪汽车云原生架构落地实践
随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。