目录
写在前面
一,容器
1.1 容器的原理
1.1.1 Namespace
1.1.2 Cgroups(Control Groups)
1.1.3 联合文件系统(Union File System)
1.2 容器的应用
1.2.1 微服务架构
1.2.2 持续集成和持续部署(CI/CD)
1.2.3 多租户环境
1.2.4 混合云和多云环境
1.2.5大数据和机器学习
1.2.6 android应用场景
1.3 容器方案选型
1.3.1 Docker
1.3.2 Kubernetes(k8s)
1.3.3 LXC
1.3.4 OpenVZ
1.4 为什么是LXC?
二,什么是LXC?
2.1 LXC简介
2.2 LXC特性
2.3 LXC版本
虚拟机与容器是两种虚拟化技术。
虚拟机提供了硬件级的虚拟化方案,也就是每个虚拟机都有自己的操作系统副本,包括内核,系统库和用户空间。
容器则提供了操作系统级的虚拟化,它们共享宿主主机的内核,但拥有自己的文件系统,进程空间和网络接口。
虚拟机模拟硬件并运行操作系统需要很大的性能开销,启动和运行速度比较慢。
容器直接运行在宿主机上,启动速度快,性能功耗低,几乎接近裸机。
容器是一种轻量级的操作系统虚拟化技术。通过将应用程序及其依赖整体打包到一个独立的运行环境中,实现了应用程序与底层操作系统和硬件的解耦。
容器技术允许应用在任何地方运行,无论是物理机,虚拟机还是云机,可移植性比较高。
在微服务架构中,应用程序被拆分成多个独立的、可伸缩的服务。容器可以帮助将这些服务打包成独立的运行环境,简化部署和管理过程。
容器可以与CI/CD工具链集成,实现应用程序的自动化构建、测试和部署。
容器技术提高了开发效率,缩短了发布周期。
在多租户环境中,多个用户或组织共享相同的基础设施资源。容器可以实现资源的隔离和分配,确保每个租户的应用程序能够独立运行,不受其他租户的影响。
容器具有良好的可移植性,可以在不同的云提供商和私有数据中心之间轻松迁移。
容器技术有助于实现混合云和多云环境的统一管理。
容器化的数据处理任务和机器学习模型可以在大规模计算环境中高效运行。
容器技术确保了资源的高效利用和任务的快速完成。
基于容器的Android系统虚拟化技术,通过在容器中运行Android系统,容器提供了进程和资源的隔离。
它可以创建一个沙箱环境,将Android系统的进程,网络,文件系统等资源隔离开来,实现多个Android系统在同一物理机上独立运行。
此外,通过CGroup机制,容器为Android应用的开发、测试、部署和运行带来更多创新性的应用场景。
在技术选型方面除了前面所面临的虚拟化方案(虚拟机和容器)选型,在容器的选型也同样有很多出色的方案让我们考虑。
下面是一些常见的容器技术方案,包括Docker,Kubernetes,LXC,OpenVZ,Podman,Containerd等。
Docker是目前最流行的容器化平台之一。它提供了一种标准的容器格式和运行时环境,使开发者可以将应用程序及其依赖项打包成一个独立的,可移植的容器。Docker容器可以在任何安装了Docker引擎的服务器上运行,包括Linux和Windows机器。
Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。Kubernetes 提供了容器编排、服务发现、负载均衡、自动伸缩等功能,使开发者能够以一种可靠、弹性的方式运行容器化应用程序。
简单来说,k8s是一个容器集群管理系统,主要职责是容器编排(Container Orchestration)---启动容器、自动化部署、扩展和管理容器应用,还有回收器。
比如说我们使用Docker来构建和打包应用程序容器,然后将其部署到Kubernetes集群中。
LXC是一种操作系统级别的虚拟化技术,提供了一种轻量级的虚拟化方法,允许多个Linux系统在单个物理设备上运行。相对于面向应用程序的Docker,LXC是一个系统容器。
它与Docker的区别如下:
它也是一种操作系统级别的虚拟化技术,与LXC类似,通常用于商业环境。
由于Android大版本升级比较快,且容易出现兼容性问题,尤其是Android Mobile、Android TV、Android Automotive应用生态存在巨大差异,相互之间并不能做到生态互融。这样一来我们在同一设备上通过系统级的虚拟化可以在TV和Automotive上分享Android Mobile的生态硕果。
LXC项目来自于linuxcontainers.org,它是Linux发布的系统级虚拟化功能。也就是说LXC的主要关注点是系统容器。这些容器提供的环境尽可能的接近你从虚拟机(VM)中获得的环境,同时又避免了独立内核和模拟硬件所带来的额外性能开销。
这样一来,它允许用户在同一宿主机上运行多个隔离的Linux系统实例。每个实例(容器)分别用用自己独立的文件系统,网络配置和进程空间,但与传统虚拟机相比,LXC容器共享宿主机的内核,使得他们更轻,更快。
LXC是Linux内核隔离功能的一个用户空间接口。通过强大的API和简便的工具,它让Linux用户能够轻松创建和管理系统容器。
当前LXC(Linux Container)使用以下内核功能来隔离进程:
LXC容器通常被视为介于chroot和完整虚拟机之间的一种解决方案。LXC的目标是创建一个尽可能接近标准Linux安装的环境,但无需使用单独的内核。
LXC5.0:该版本的支持,将持续到2027年6月1日。
LXC4.0:该版本的支持,将持续到2025年6月1日。